近期由于一些莫名其妙的原因开始学c++,我觉得我哪天要是挂了也是被自己给折腾死的,算了,反正不是折腾死就是被淘汰,当是没事打发时间了,废话不多说,开始今天的主题。
之前接触的注释就是注释,条件语句就是条件语句,前两天突然遇见一个很高级的术语叫做条件编译,把我理解的前因后果详细地说说清楚吧。
一、注释
首先从注释开始说起,注释最常见不过,我们也会经常使用,虽然不同语言有不同风格的注释方法,但是很多都是异曲同工,互相之间可以相互借鉴和参考的。C/C++最常用的注释就两种:
1. //单行注释
2. /*
*块注释
*/
二、预编译
1. 接着 牵扯出类似于注释的另一种特别方法叫做:预编译屏蔽。
格式为:
#if 0
#endif
例子为:
#if !defined(_WIN32_WCE) && defined(_DEBUG)
//如果编译环境是WINCE,并且是debug版本,出现在这个if-endif块中的语句就会被编译,否则跳过
#endif
把它补充完整就是:
#if 条件1
代码段1
#elif 条件2
代码段2
#else
代码段n
#endif
这段语句与if-else的区别是,该语句是条件编译,通过预编译指令设置编译条件,在不同需要的时候编译不同的代码。而if-else则是全部编译,在运行时选择不同的分支执行。
2. 类似的预编译处理还有宏定义
#if defined(x)
...code...
#endif
该语句不需要对x的逻辑值进行判断,只要在程序的宏定义里面定义了x这个宏,就编译中间的code代码段,否则都不编译。取反用#if !defined(x)
√ #ifdef 与 #if defined(x)作用相同
√ #ifndef 与#if !defined(x)作用相同
※ C/C++中所有以#开头的都是预编译指令,就是在正式编译之前,让编译器做一些预处理的工作