#if 及宏定义,是不是C语言里常有这种“开关”用法?

举个例子
#if USE_Port_B
底下是相应的程序
#endif
然后在某个文件的开头写上一句空的宏定义,像这样
#define USE_Port_B

这样 #if USE_Port_B 后面的语句就被“启用”了,也就是说,这种技巧实际上是利用#if 起到了一个开关的作用,是不是经常有程序员这么用?

#if确实是起到了一个开关作用,但是不同于if语句,if语句只是执行流的变化,最终代码还是被编译了,用#if的话,只有后面为真的情况下才编译,你上面的定义后面需要跟数字,比如
#define USE_Port_B 0
那么相应的代码就不会被编译,说一个简单的情况
#if WINDOWS
//code
#endif
比方说你检查系统的时候,如果是windows的话就定义宏WINDOWS,就是说只有在windows下才会编译code部分

54文人网
温馨提示:答案为网友推荐,仅供参考
相似回答