首页 > 其他分享 >C语言预处理指令

C语言预处理指令

时间:2023-02-28 19:00:46浏览次数:43  
标签:语句 ...# C语言 编译 YI 指令 STR printf 预处理

1、宏操作符#

#操作符可以把宏参数转换成字符串

#include<stdio.h>
#define STR(n) #n
int main(){
printf("STR(n)中的值为:%s",STR(5+6));
return 0;
}

通过GCC预编译后可以看到我们里面的代码的参数5+6变成了 字符串

C语言预处理指令_操作符

C语言预处理指令_操作符_02

##操作符可以把代表标识符的宏参数和其他内容链接得到一个新的宏标识符

C语言预处理指令_操作符_03

预编译后的文件我们可以看到指针变量的名称改为了p_val得到了我们新的变量名

C语言预处理指令_操作符_04

2、条件编译

  • 在编译时从几组语句里选择一组编译而忽略其他组
  • #ifdef/#ifndef...#else...#endif结构可以根据一个宏名称是否被定义过从两组语句里选择一组编译
  • #if...#elif(任意多次)...#else...#endif结构可以根据任意逻辑表达式从多组语句里选择一组编译

C语言预处理指令_#endif_05

#ifdef YI 表示当我们编译时定义了这个YI则执行printf(“1\n”)这条语句 否则执行 printf("2\n")这条语句

C语言预处理指令_操作符_06

换做#ifndef YI 如果编译时定义了宏则执行printf(“2\n“) 否则执行printf("1\n")


标签:语句,...#,C语言,编译,YI,指令,STR,printf,预处理
From: https://blog.51cto.com/u_15887473/6091689

相关文章