条件编译怎么理解???

条件编译怎么理解?看了一些程序还是没有特别清晰的思路去理解使用。都有哪些应用场景呢????????图片说明

应该是为了应对不同版本,举个例子,win32的头文件中,对涉及到字符串的API函数,会使用条件编译,在定义了unicode宏时,xxx宏一律定义成xxxW否则定义成xxxA,这样开发者只需要改一下版本,源码不用改,轻松实现ANSI和unicode的转换

个人认为主要防止重复编译,或根据不同环境编译不同代码块

1、防止重复编译
2、不同版本
3、不同环境

见人说人话,见鬼说鬼话。其实vs就帮我们做了很多条件编译,比如你选择编译为64位或者32位目标平台是,vs就帮我们选择了不同的动态链接库,保证了项目的成功编译。还有比如qt中的跨平台,在linux.windos.或者移动平台中,大部分代码是相同的,但是某些代码又是他们各自特有的,所以在编译时需要指出条件和代码。还有常见的debug和release编译时,也经常需要设置编译条件。debug调用debug包括调试信息的头,release包括不包含调试信息的头。