8_2 C语言|宏和条件编译指令

来源:互联网 发布:网速限制软件 编辑:程序博客网 时间:2024/06/07 07:04

预定义符号:一般用于做日志记录;

 

__FILE__ 路径    __LINE__行数 __DATE__  日期__TIME__  时间

 

#define 定义符号和宏  (getchar()assert()都是宏);

宏:类似于函数,把参数替换到文本中称为宏定义,带上足够多的括号,宏不支持递归;

printf(“hello world”) 等价于 printf(“hello”” world”) //两个字符串一起可合并;

#变量名 = “变量名”

int a = 10;

#a表示“a//转字符串;

#define cat(x,y)

int a2 = 10;

Printf(“%d\n”,cat(a,2));//10

带有副作用的表达式:++  --   ch=getchar();

#undef 移除宏定义  

Linuxgcc test.c -D SZ=100  //其中SZ是代码中未定义的宏,这样可以指定宏;

条件编译指令:预编译时处理

#ifdef

```

#endif

例如

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

{

Printf(“%d\n”,i);

#ifdef __DEBUG__

Printf(“xxx”);

#endif

}

如果定义__DEBUG__

#ifdef __DEBUG__

Printf(“xxx”);

#endif

会参与编译,如果未定义,则不参与编译

#if 常量表达式

#elid

#else

#endif

其中:

#if define  == #ifdef

#if !define == #ifndef

#pragma once 等价于 #ifndef  #define    #endif

原创粉丝点击