#ifndef

一个简单的结构:

      #ifndef x

   #define x  

      ...


   #endif


属于预处理命令中的条件编译(其他两个:1.宏定义; 2.文件包含),它们均以#号开头,条件编译用来决定那些代码被编译,哪些是不被编译的,条件可以为表达时的值,或者某个特定的宏是否被定义,来确定编译条件。


预处理器把源代码分割或处理成为特定的符号用来支持宏调调用,先于编译器对源代码进行处理,预处理还会删除程序中的注释和多余的空白字符,所以,为了程序的可维护性,不要担心空白过多,或注释过多,条件编译可以使目标程序变小,运行时间变短。


这种结构,一般用在头文件中,如


头文件:

#ifndef  _RANDOM_H_

#define  _RANDOM_H_ 1

typedef int *callback_random(char *random,int len);

void &n bsp;  set_callback(callback_random *cb);

int     genrate_random(char *random,int len);


#endif


#ifndef x//先测试x是否被宏定义过

#define x

程序段1 //如果x没有被宏定义过,定义x,并编译程序段1

#endif

程序段2 //如果x已经定义过了则编译程序段2的语句,“忽视”程序段1。


源程序功能:如果用户定义了随机数回调函数则使用用户自己定义的,否则使用默认的回调函数。#endif用于中止条件块。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值