C语言中的宏定义用法分为两种。
1、不带参数的宏定义指绝比较简单,就是用一个指定的标识符来代表一个字符串。它的一般形式为“#define 标识符 字符串”,例如#define E 2.718281828459。这种方法使用户能以一个简单的名字代替一个长的字符串。
2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义渣散的一般形式为;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数。例如#define S(a,b) a*b area=S(3. 2)。
扩展资料:
宏定义只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入,所以执行相对宏定义会较慢。
使用宏定义次数多时,宏定义展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有唯梁姿很多宏定义展开,目标文件很大,执行的时候运行时系统换页频繁,效率就会低下)。而函数调用不使源程序变长。
c语言使用宏3个步骤是:1)写出这个宏的定义,比如
#define ADD(a,b) ((a)+(b))
2)在代码中应用这个宏李答,例如
xx=ADD(3+4,5)*ADD(0,7)
3)预编译时系统自动展开宏,例如慎扰吵上述宏展开宽侍后的结果是
xx=((3+4)+(5))*((0)+(7))
c++中的宏跟c语兆宏简言中的宏是一个意思。完全继承了c里面的宏特性,这个是为了让c++跟c尽量的兼容,但是c++里面不族裤提倡使用宏,c里面用宏的某些场合,可以用c++里的新绝肆特性代替,比如 inline,const, template。当然,c++里面还是有些时候非用宏不可。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)