c语言宏函数的用法 c语言宏运算( 二 )


一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(iMAXTIME){.........}
编译器在处理这个代码之前会对MAXTIME进行处理替换为1000 。
这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用 , 这个问题在下面反映的尤为突出 。
2、define的“函数定义”
define可以像函数那样接受一些参数,#define max(x,y) (x)(y)?(x):(y);
这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了 。可以作为一个简单的模板来使用而已 。
C语言中无参宏定义的一般形式:
#define 宏名 字符串,其中的“#”表示这是一条预处理命令 。凡是以“#”开头的均为预处理命令 。“define”为宏定义命令 。“标识符”为所定义的宏名 。“字符串”可以是常数、表达式、格式串等 。
例如: #define M (a+b) 它的作用是指定标识符M来代替表达式(a+b) 。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时 , 将先由预处理程序进行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译 。
关于c语言宏函数的用法和c语言宏运算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读