宏定义与类型说明的区别和联系

版权声明:本人博客内容均为自己学习总结和参考使用,不用做商业用途,转载请注明出处。 https://blog.csdn.net/bornpride/article/details/87809193

一、类型说明

1、C语言不仅提供了丰富的数据类型给我们使用,而且还允许户自己定义说明符。在 C语言中,使用typedef即可完成这项功能,定义格式如下:typedef 原类型名 新类型名;
注意:typedef语句后面需要加上分号。

2、typedef语句并没有定义一种新的数据类型,它仅仅是给已有的数据类型取了一个更加简洁形象的名字,可以用这个新的类型名字来定义变量。在实际开发中,很多公司都会使用这个关键字来给变量类型取新名字,一是为了方便代码的移植,还有就是可以使代码更加的简洁易读。

3、有的时候也有用宏定义代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更加灵活。也许你曾看到过这种定义方式:#define uchar unsigned char
这种方式不建议大家使用,在这种应用下是没问题,但是当用到指针的时候,就有可能出错,在一些比较正规的公司如果写出这种形式,会让人觉得写代码的人比较初级。

二、宏定义

1、宏定义#define是预编译处理命令,在编译处理时进行简单的替换,不做任何正确性检查,不管含义是否正确都会被代入,例如:#define PI 3.1415926
定义了这个宏之后,我们今后可以直接用PI来替代3.1415926了,比如我们写程序area = PI×r×r来求圆的面积,就会直接替换成3.1415926×r×r。如果不小心写成了3.1415g26,编译的时候还是会代入到程序中进行替换。

三、typedef与#define的区别

1、

猜你喜欢

转载自blog.csdn.net/bornpride/article/details/87809193