C语言中的条件编译

1.常见的条件编译指令

  • #if  常量表达式    //... #endif // 常量表达式由预处理器求值。
  • 如: #define __DEBUG__ 1 #if __DEBUG__    //.. #endif

2.多个分支的条件编译

#if 常量量表达式  

 //...

#elif 常量量表达式    

//...

#else  

 //...

#endif
 

3.判断是否被定义

#if defined(symbol)

#ifdef symbol
#if !defined(symbol)

#ifndef symbol
 

4.嵌套指令

#if defined(OS_UNIX)  

 #ifdef OPTION1      

      unix_version_option1();    

#endif    

#ifdef OPTION2        

    unix_version_option2();    

#endif #elif defined(OS_MSDOS)    

#ifdef OPTION2      

     msdos_version_option2();    

#endif #endif 

2.文件包含

  • comm.h和comm.c是公共模块。
  • test1.h和test1.c使用了公共模块。
  • test2.h和test2.c使用了公共模块。
  • test.h和test.c使用了test1模块和test2模块。
  • 这样程序中就会出现两份comm.h的内容。
  • 这样就造成了文件内容的重复。
     

 解决方法:条件编译

 
  • 每个头文件的开头写:
 
  • #ifndef __TEST_H__
  • #define __TEST_H__
  • // 头文件的内容 #endif  
  • //__TEST_H__
  • 就可以避免头文件的重复引入。

  •  

猜你喜欢

转载自blog.csdn.net/ijn842/article/details/81813291
今日推荐