C语言笔记-4-预处理宏的使用
前言
自学笔记,没有历史知识铺垫(省略百度部分),C语言预处理宏的使用,前文gcc中可以了解到,宏会在预处理时,被替换到了实际代码中,编译的代码已经没有宏相关的代码了
一、预处理
1.#include 包含文件
#include <stdio.h>
#include "product.h"
2.#define 宏
#define PRODUCT_ID 12
#define UNIT 1+1
#define UNIT (1+1)
#define UNIT(x) (2*(x))
...printf("UNIT(x): %d\n",UNIT(1+10));
3.#ifdef #else #endif 宏条件语句
可用于不同环境调试/切换或防止重复引入时使用 一般被判断的宏可以在gcc 中使用-D来注入,如gcc -DTEST_ENV 这样就不需要代码二次开发即可调试
#ifdef TEST_ENV
printf("show debug content");
#endif
4.预定义宏__FUNCTION__ :函数名
prinf("this function name is : %s",__FUNCTION__);
5.预定义宏__LINE__ :行号
prinf("this line is : %d",__LINE__);
6.预定义宏__FILE__ :文件名
prinf("this file is : %s",__FILE__);
二、宏体中的#与##
#define USER_TAG(tag) #tag
#define USER_GROUP(num) user_group_##num
int main(){
int user_group_1=10;
int user_group_2=20;
printf("user group is %d \n",USER_GROUP(1));
printf("user group is %d \n",USER_GROUP(2));
return 0;
}
总结
本章主要为C语言预处理宏的使用
|