参考博客:https://www.cnblogs.com/lit10050528/archive/2013/03/26/3340027.html
以下内容就是根据大神的博客进行改编过来的
条件编译的三种形式:
一:第一种形式
1:#ifdef 标识符
程序片段1
#else
程序片段2
#endif
含义:如果标志符被#define命令定义过,那么久对程序片段1进行编译执行;
否则就对程序片段2进行编译执行,我们在一般使用的时候就直接将#else是
直接进行去除掉,这样更改完之后就是如下:
#ifdef 标识符
程序片段1
#endif
二、第二种形式
2、#ifndef 标识符
程序片段1
#else
程序片段2
#endif
含义:就是如果标志符没有被定义,则就直接执行程序片段1,跟上述第一种方案
的区别就是将#ifdef直接进行替换为#ifndef,而这里的#else 程序片段2也是可以
直接忽略的。忽略完之后的值定义如下:
#ifndef 标识符
程序片段1
#endif
第三种:
3、
#if 标识符
程序片段1
#else
程序片段2
#endif
含义:如果定义了标志符就对程序片段1进行执行,否则就对
程序片段2进行执行,可以一般用于函数中的头文件中类被重复
定义多次,在qt的头文件中会自动生成,来防止头文件被重复定义
#if 标识符
如:#ifndef MAINWINDOW_H
#define MAINWINDOW_H
...
#endif
来源:CSDN
作者:Littlehero_121
链接:https://blog.csdn.net/Littlehero_121/article/details/103454157