C语言 #define

来源:互联网 发布:贝叶斯网络维基百科 编辑:程序博客网 时间:2024/05/22 14:17

今天遇到陌生的#define  翻书一看是宏定义,那作用和定义变量差不多。就不明白到底有什么区别了。

 

网上一查~收集了一些解释

 

有的时候为了程序的通用性,可以使用#define预处理宏定义命令,它的具体作用,就是方便程序段的定义和修改。

 

举个例子吧,如果说你在做一个项目,这个项目的代码很长,有5000多行,而且基本上裏面的同一个常量N就占了3000多行,如果说今后你要是想对这个常量N的值进行修改,如果在程序的开始没有定义一个#define N,那么改起来不是很麻烦,3000多行啊,那不是要晕过去了~如果你事先定义了一个#define N ‘常量值’,那么当你要修改程序内部的常量值时,只要修改N后面的常量值就等于把程序内部的要修改的相同常量值都改了,那就很方便了

 

宏定义没有类型
比如宏定义#define pi 3.1415926这里的pi并没有类型

建议你少用宏定义,因为宏定义存在很强的安全隐患,没有类型的变量当然在很多时候会造成很多错误了,而且所有的宏定义都可以用其他的方式代替,一般情况下更简便,只不过大多初学者以为宏定义看起来似乎很酷,所以初学的时候都喜欢用,其实现在基本上已经没什么人用宏定义了,用了宏定义的程序健壮性不行。

 

由于define定义没有空间,即不能将宏的指针赋值给变量或常量。

编译时替换,因为将源代码翻译成可执行的文件时,要经过编译和链接,才能生成可执行文件(exe),也就是在这个过程中编译器直接将宏扩展成定义的内容

原创粉丝点击