编译预处理,就是编译器在没有把C语言编译成汇编语言之前,宏的实体会代替宏名出现在程序中。
C语言中,#ifdef ----- #endif 的用法是
例:
#ifdef XXXX
程序段
#endif
如果前面的定义中有#define XXXX,作用只是告诉编译器而已(已经定义了)。这样的话,遇到#ifdef XXXX时,那么就成真,真的话编译器就会把那个程序段包含进来,否则那段程序是不会包含的(省空间吧)。其实这样的结构还有#ifdef ------ #else ----- #endif;#ifndef --- #else --- #endif。
应用方面估计很多人都碰到过,比如头文件当中,为防止一个头文件重复包含,可以这样
#ifndef __XXX_H__
#define __XXX_H__
----程序
#endif
这样的结构还可以用在很多方面,我见识的可能少,比如测试方面
//define DEBUG //打开就是调试,不打开就正常随机性
//一般来说,给客户的产品都是随机的,但是开发员自己测试时,所以情况都要考虑,所以要一步步的
#ifndef DEBUG
RV = get_ramdom(); //可随机测试
#else
RV++; //可一步一步的测试
#endif
|