A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yyyyyyyyqs 中级黑马   /  2015-7-2 00:42  /  887 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

被定义为“宏”的标识符称为“宏名”,在编译预处理时,对程序中所有出现的“宏名”,都用
宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
在字符串中出现的宏名不会被替换。
宏可以嵌套定义。比如:
1 #define R 4
2 #define PI 3.14
3 #define AREA
可以使用  #undef  来取消#define
习惯上宏名用大写字母表示,以便于与变量区别。但也允许小写。
定义形式:
1 #define 标识符 字符串



有参宏:
对带参数的宏,在调用中,不仅要展开,而且要用实参去代替形参。
形式:  
#define 宏名(形参表) 字符串
复制代码
  /*有参宏  #define SUM (a) a+a
     SUM(3) 不仅要  a+a替换,而且还要把实参3带入到字符串中
  
  */
  #include<stdio.h>
  #define SUM(a) a+a

  int main(int argc,const char * argv[]){
  
     int result = SUM(3);
   printf("%d\n",result);
    return 0;
}
复制代码
运算结果:6

2 个回复

正序浏览
支持下,很不错
回复 使用道具 举报
yangzhen5352 来自手机 中级黑马 2015-7-2 07:29:28
沙发
yyyyyyyyqs 发表于 2015-7-2 00:42
被定义为“宏”的标识符称为“宏名”,在编译预处理时,对程序中所有出现的“宏名”,都用
宏定义中的字符 ...

顶顶顶顶,不错⊙▽⊙
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马