C语言中宏的预处理



C语言学习--宏的预处理
条件预处理
示例:
比如在开发是使用同一套代码实现debuger与releases版本的开发
可使用条件来完成开发
*****************************


#include <stdio.h>

main () {

#ifdef DEBUG
    printf("=== debug info ======");
#endif
    
    return 0;
}

我们可以实现通过在文件头部加入 
#define DEBUG 
来实现编译debuger版本。

或者可以在编译时使用 gcc -D

gcc -D DEBUG main.c
可以更好的实现一套源码两个版本。

宏的展开
使用宏可以使我们的代码更加优雅。
一个#表示的是将定义的内容变为string类型的字符串,而两#直接将内容变为代码。

示例:
字符串化:
#define X(a) #a

int main () {
    printf(go!\n);
    return 0;
}
=== 输出结果===
go!

连接符号

#define X(a) arr##a

int main () {
    int arr1 = 5900;

    printf("%d\n", X(1));

    return 0;
}
=== 输出结果===
5900

posted @ 2022-03-04 11:24  看不见的R  阅读(66)  评论(0)    收藏  举报