c语言的宏

来源:互联网 发布:vbox centos 增强功能 编辑:程序博客网 时间:2024/06/16 11:52

在程序编写时会有时会出现这样的情况:同一个数字或是同一个字符串要出现数次,到了维护的时候这些数字或字符串要同时改动替换掉,如果只是出现几次还好,如果这个数字或字符串要出现几十次或几百次的话改动起来就非常麻烦。这样的话在编写代码时可以考虑宏的使用。
宏属于预处理命令,并不属于c语言。简单来讲就是原封不动的替换。
看下面这段代码:
#define IT 30
int main (int arge, counst char * argv[])
{
    int a[IT];
    for (int i = 0; i < IT; i++ )
    {
 a[i] = i + 10;
    }
    for (int i = 0; i < IT; i++ )
    {
 printf("a[%d] = %d",a[i])
    }
    return 0;
}
最上面的 #define IT 30 ,这句话是宏的定义,把程序中IT的全部换成30。当我们需要使IT替换其他数字或字符时只需要把#define IT 30 这段代码修改一下就好了。
需要注意的地方:1,宏名一般用大写(小写的话,在阅读时会有障碍)2,宏定义写在函数花括号外边 3,字符串""中永远不包含宏例如printf("IT");这条语句不会输出30,而是输出IT。

另外宏还可以这样用
#define ADD(A,B)((A)+(B))
int main (int argc,const char* argv[])
{
 int add;
 add = ADD (7,9);
 printf("%d",add);
 return 0;
}
输出结果是16
这里的宏是带参数的。需要注意的地方:所有的参数需要加变量,最后表达式要加括号,宏名和参数之间不能有空格,宏展开时会使程序变长。

0 0
原创粉丝点击