【C语言】typedef(自定义数据类型)与#define(宏定义)用法比较 |
您所在的位置:网站首页 › TypeDef是什么数据类型 › 【C语言】typedef(自定义数据类型)与#define(宏定义)用法比较 |
不管是在C语言还是在C++中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef和#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了。 1.宏定义(#define) 宏定义又称为宏代换、宏替换,简称“宏”。 格式:#define 标识符 字符串 其中的标识符就是所谓的符号常量,也成为“宏名”。 预处理(预编译)工作也叫作宏展开:将宏名替换为字符串。掌握“宏”概念的关键是“换”,一切以换为前提。 2.自定义数据类型(typedef) 定义一种类型的别名,而不只是简单的宏替换。可以用typedef可以解决同时声明多个指针型变量的问题。 请看下面的例子: #define INT1 int typedef int INT2; #define PINT int * typedef int * SINT;从形式上看它们相似,但在实际使用中却不相同。 下面分别用INT1,INT2,PINT,SINT定义变量就可以看出它们的区别: INT1 a,b; INT2 c,d; PINT e,f; SINT g,h;在经过宏替换后变为: int a,b; INT2 c,d; int * e,f; SINT g,h;在上面的变量中,变量a和b为整型变量,变量c和d也为整型变量;在这里我们看不出宏定义和数据类型定义的区别。而变量e为整型指针变量,变量f为整型变量;变量g和h则均为整型指针变量,因为SINT是一个类型说明符。由这个例子可见,宏定义虽然也可表示数据类型,但毕竟是作为字符替换。在使用时要分外小心,以避出错。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |