黑马程序员——【C语言】typedef的用法
来源:互联网 发布:淘宝怎么样发布宝贝 编辑:程序博客网 时间:2024/05/16 18:09
------- android培训、java培训、IOS培训期待与您交流! ----------
一、基本定义:声明一个新的类型名来代替已有的类型,从而我们方面使用。
二、使用typedef的场合:
1>基本数据类型
2>指针
3>结构体
4>枚举
5>指向函数的指针
下面分别举例来说明一下具体用法
1.1定义基本数据类型
typedef int Myint; //Myint 新的类型名 相当于给int取了个别名
//这里就可以用这个别名来定义int类型的变量
Myint a=10;
同样的基本类型的其他数据类型(float、double、char)都可以利用这种定义方式。
2.1指针
typedef char* String;
String name="tom";
3.1结构体
首先定义一个结构体类型:
struct Student
{
int age ;
char name;
};
通常情况下我们定义一个结构体变量的时候这么做:
struct Student stu; 如果还想再定义一个 只能在写一遍 struct Student stu2; 很麻烦。所以这里我们利用typedef来定义:
第一种方式:
struct Student
{
int age ;
char name;
};
typedef struct Student Mystu;
第二种方式:
typedef struct Student (Student 也可以省略)
{
int age ;
char name;
} Mystu;
4.1枚举
定义枚举类型原理和定义结构体类型类似。
enum Sex {Man,Woman,Unkown};
typedef enum Sex Mysex;
Mysex s=Man;
或者
typedefenum Sex Mysex {Man,Woman,Unkown};
或者 typedefenum Sex (这里的Sex也可以省略){Man,Woman,Unkown}Mysex;
5.1定义指向函数的指针
首先写一个正常情况下(不用typedef)指向函数的指针:
int sum(int a, int b)
{
return a + b;
}
int main()
{
//定义一个指针指向sum函数
int (*p) (int, int)=sum;
return 0;
}
如果下次我们还想在main函数中定义一个指针指向sum2 函数,还得再写int (*p) (int, int)=sum2; 这样很复杂,所以我们引用了typedef,就会变得很简洁。
typedeint (*MyPoint) (int, int); //Mypoint 就是我们定义指向函数指针的类型名称
int sum(int a, int b)
{
return a + b;
}
int sum2(int a, int b)
{
return a + b;
}
int main()
{
//这样写就变得很简洁
Mypoint p = sum;
Mypoint p2 = sum2;
return 0;
}
补充:typedef 与宏的区别
例如:
#define String2 char*
typedef char * String;
String s1,s2;
s1="tom"; s2="rose";
String2 s3,s4;
区别在于用法上的不同:这里的变量s1,s2是char * 指针,而s3是char * 指针,s4只是char 类型。
- 黑马程序员——【C语言】typedef的用法
- 黑马程序员——C语言基础——typedef的用法
- 黑马程序员 C语言基础:typedef 用法
- 黑马程序员---C语言typedef的使用
- 黑马程序员——13-C语言之typedef
- 黑马程序员——C语言------typedef、static和extern
- 黑马程序员——c语言基础:枚举和typedef
- [黑马程序员][C语言] typedef
- 黑马程序员——C语言基础--关于typedef和define的重要区别记录以及typedef的经典例子
- 黑马程序员——C语言基础——typedef的使用
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- 黑马程序员——C语言的关键字 typedef,static,extern和预处理指令
- 黑马程序员——OC语言加强---block的typedef
- 16、黑马程序员-C语言typedef关键字
- 黑马程序员——C语言日志——typedef的使用以及和#define的区别
- c语言typedef的用法
- C语言typedef的用法
- c语言typedef的用法
- 数据库索引的作用和优点缺点
- C++生成libsvm训练使用数据文件格式
- 数据库中主键与索引的区别
- java IO读写大文件的几种方式及测试
- 奇异值分解
- 黑马程序员——【C语言】typedef的用法
- 长周期行业-航运(3)-马士基航运2014年情况
- 致佳音: 推箱子游戏自动求解算法设计(二)
- Qt undefined reference to,Error 255,找不到库函数的解决办法
- C++学习心得
- 设计模式之装饰者模式——游戏装备设计
- 《TCP/IP详解》读书笔记(17章)-TCP传输控制协议
- 【LeetCode】记与Single Number相关
- Java 访问(复制,粘贴)剪切板