欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言预处理

程序员文章站 2024-02-22 16:07:58
...

预处理

预处理是编译前所做的工作.编译前,编译器自动调用预处理程序对源码中’#'开头的预处理部分进行处理,处理完
毕之后,进入源码的编译阶段.

预定义符号

常用的预定义符号:

					__FILE__     : 编译的源文件名.   
                    __FUNCTION__ : 当前所在函数的函数名.
                    __DATE__     : 编译日期.
                    __TIME__     : 编译时间.//格式占位符都用%s printf("%s",__DATE__);

2.宏定义: 自定义一个宏(要符合标识符的命名规则),用于表示任意数据或者表达式.

无参宏定义:

			#define 宏名 宏替换
              比如:    #define A 35    //A就代表整型数据35.
                      #define TEST "abddgdsfdlfj"  //TEST就代表"abddgdsfdlfj"
					  #define ADD 1+3
					  #define TEST abddgdsfdlfj    //TEST就代表abddgdsfdlfj

带参宏定义:

  #define 宏名(参数表) 宏替换
              比如: #define M(a,b) a+b-2
          			 K = M(1,2) + 4;
    			 ---> K = 1+2-2+4

3.文件包含:

#include <name.h> //包含系统头文件.
#include “name.h” //包含自定义头文件.
文件包含允许嵌套,即在一个被包含文件中可以包含其它文件.

4.条件编译: 根据不同的条件编译不同代码段.

  ----------------------------------------------------------------------------------------------
 
  #ifdef 宏名  //如果定义了宏"宏名",则编译代码段.    
  代码段;                                           
  #endif                                             
  ----------------------------------------------------------------------------------------------
  #ifdef 宏名  //如果定义了宏"宏名",则编译代码段1,否则编译代码段2;   
  代码段1;                                          
  #else                                       
  代码段2;                                     
  #endif                                           
  ----------------------------------------------------------------------------------------------
  #if 表达式    //判断表达式的逻辑值(真或假),若逻辑值为真,则编译代码段1,否则编译代码段2.     
  代码段1;                                          
  #else                                       
  代码段2;                                     
 #endif     
----------------------------------------------------------------------------------------------------

相关标签: C语言