码迷,mamicode.com
首页 > 编程语言 > 详细

c语言中使用宏,需要注意的的几点

时间:2016-08-20 17:36:12      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

使用#define来定义一些宏,进行一些简洁的替换甚至一些带参数的宏,在linux c代码中很常见,说明它很好、很有用,

但是它也有一些复杂的规矩和陷阱需要注意,下面我记录一些,仅供参考。

1、当使用"\"来换行时,第二行要顶格写,否则会多出一个空格。例如:

#define OW "what are you doi    \
       ng?"
第二行的ng?"没有顶格写,那么进行替换的时候,会这样:
what are you doi        ng?
正确的定义为:
#define OW "what are you doi\
ng?"

2、宏可以替换数组的长度,但是const定义的常量不可以。

#define LIMIT  60
const int LMT=12;
int a[LIMIT];     //有效

int a[LMT];        //无效
原因:在C中,非自动数组的大小应该是整型常量表达式,这意味着数组大小必须是
整型常量的组合(如5)、枚举常量和sizeof表达式,但不包括const声明的值。

c语言中使用宏,需要注意的的几点

标签:

原文地址:http://www.cnblogs.com/litifeng/p/5790707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!