首页 > 其他分享 >预处理命令

预处理命令

时间:2023-06-23 15:33:31浏览次数:33  
标签:__ arr 编译 int ret 命令 printf 预处理

预处理是进行文本操作                                                                        

预定义符号

printf("%s\n", __FILE__);  //__FILE__进行编译的源文件

printf("%d\n", __LINE__);  //__LINE__文件当前进行的行号

printf("%s\n", __DATE__);  //__DATE__文件被编译的日期

printf("%s\n", __TIME__);  //__TIME__文件当前被编译的时间


预处理指令:由#开头的都是预处理指令

比如:

#define  #include  #pragma pack(4)  


宏定义:

 

如果定义宏是表达式时尽量带上()

比如:

#include <stdio.h>

#define square(x) x*x

int main()

{

//int ret = square(5);

//等价与 ret=x*x;

// //所以ret为25

int ret = square(5+1);

等价于5+1*5+1=11

printf("%d\n", ret);

return 0;

}


#把一个宏参数变成对应的字符串

例子:

#define PRINTF(X) printf("the value of "#X"   is %d\n",X)

int main()

{


int a = 10;

int b = 20;


PRINTF(a);

//printf("the value of "a" is of %d\n",a);


PRINTF(b);

//printf("the value of "b" is of %d\n",b);

return 0;

}


##可以把位于它两边的符号合成一个符号。


#undef  移除一个宏指令


条件编译:

1.#if 常量表达式

   //......

#endif

常量表达式为真编译,否则不编译

  printf("%d\n", arr[i]);

如果_DEBUG_定义了则编译  printf("%d\n", arr[i]);语句,否则不编译。

#include <stdio.h>

#define _DEBUG_

int main()

{

 int arr[10] = {0};

int i;

for (i = 0; i < 10; i++)

{

 arr[i] = i;

#ifdef _DEBUG_ //条件编译

  printf("%d\n", arr[i]);

#endif

 }

 return 0;

}


2.多分支条件编译



标签:__,arr,编译,int,ret,命令,printf,预处理
From: https://blog.51cto.com/u_15839001/6538104

相关文章

  • mysql索引优点缺点及命令
    索引是什么:索引是对数据库表中一列或者多列的值进行排序的一种结构,使用索引可提高数据库中特定数据的查询速度。(索引本质上是数据库结构,拥有排序跟查找两种功能,可以理解为排好顺序,快速查询数据库)。索引优点:加快查询速度。创建唯一索引保证了数据的唯一性。3.实现数据的完整性,加速表......
  • Arthas常用的命令(三)--monitor、jad 、stack
    monitor:监控方法的执行情况监控指定类中方法的执行情况用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息参数说明方法拥有一个命名参数[c:],意思是统计周期(cycleofoutput),拥有一个整型的参数值参数名称参数说明class-pattern类名表达式匹......
  • BCDEdit是Windows操作系统中的命令行工具,用于管理启动配置数据(BCD)存储库。BCD存储库包
    BCDEdit是Windows操作系统中的命令行工具,用于管理启动配置数据(BCD)存储库。BCD存储库包含了系统引导时所需的引导设置、操作系统选项和相关配置信息。以下是一些关于BCDEdit的常见用途和功能:添加和删除条目:BCDEdit可以用于添加和删除引导条目,即不同的操作系统或启动选项。通过BCD......
  • 【FFMPEG】用到的命令和注意事项
    编译安装选项:./configure--extra-cflags="-fPIC"--enable-nonfree--enable-pic--enable-shared (注意顺序,一般把-i写到最后是不会错的) 1 把raw文件转化为图片,注意raw文件的后缀要正确:ffmpeg-s4982*1080-pix_fmtrgba-iout.rawout.png 2把h264......
  • xshell 常用命令
    Linux常用命令工具xshell工具链接:https://pan.baidu.com/s/1gLwhcbPQuRbOWK87sjTmBQ提取码:ep4nputty工具下载地址:https://www.putty.org/ xshell 常用快捷键#停止日志chrl+s#继续日志ctr......
  • linux 中 ls 命令中的-r 和 -t选项
     001、[root@PC1test01]#lsa.txtc.txtx.txt[root@PC1test01]#ls-l##测试数据total12-rw-r--r--.1rootroot6Jun2223:00a.txt-rw-r--r--.1rootroot10Jun2223:01c.txt-rw-r--r--.1rootroot4Jun2222:58x.txt 002......
  • cmd基本命令
    创建文件:1.copycon文件名.后缀2.编辑文件内容3.crty+z结束文字编写 查看文件内容:type 文件名.后缀 分页查看文件内容:type 文件名.后缀|more 删除文件:del文件名.后缀 修改文件夹属性:attrib+h+s+a文件夹名h为......
  • linux 中 tr命令
     001、-s将多个连续的字符压缩为一个字符[root@PC1test01]#lsa.txt[root@PC1test01]#cata.txt##测试数据ddddfffabccccclerrrrdddd[root@PC1test01]#cata.txt|tr-s"a-z"##a-z均压缩为一个字母dfabclerd[root@PC1test01]#cat......
  • 学习笔记-第12天-命令合集11
    1.passwd给用户设置密码用户自己给自己设置密码直接:passwd.[root@localhost~]#passwdChangingpasswordforuserroot.Newpassword:BADPASSWORD:Thepasswordisshorterthan8charactersRetypenewpassword:passwd:allauthenticationtokensupdatedsuccessfu......
  • nginx启动命令和停止命令
    进入nginx的sbin目录下cd/usr/local/nginx/sbin/1、启动nginx./nginx2、停止nginx两种方式#待nginx进程处理任务完毕进行停止。./nginx-squit#先查出nginx进程id再使用kill命令强制杀掉进程。./nginx-sstop3、查看nginx端口psaux|grepnginx4、查看nginx版本......