#ifdef,#else,#endif,#if 拾忆】的更多相关文章

预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作.说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译.这样做的好处是,经过处理后的代码,将会变的很精短.   关于预处理命令中的文件包含(#i nclude),宏定义(#define),书上已经有了详细的说明,在这里就不详述了.这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明.以下分3种情况: 1:情况1:#ifdef _XXXX...程序段1...#else...程序段2…
2016年12月29日更新: 今天查看以前文件的时候, 突然发现了#error 这个预处理指令.然后回想一下工作, 发现这个指令使用场景还是很多的.比如: 一个项目的模块儿之多,源文件之大,代码之多,那么其中的宏, 也会很多. 免不了冲突定义.这时候, 我们就需要编译器能及早的告诉我们.那就是在编译的时候.#error就可以这么实现: /** 如果JOE宏没有定义,那么编译就此结束, 编译器就会显示红色的错误 */ #ifndef JOE #error "JOE is not exits&quo…
转于 http://www.cnblogs.com/renyuan/archive/2013/05/22/3092362.html 今天笔试的时候遇到这个问题,整理一下! 一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是"条件编译".有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句. 条件编译命令最常见的形式为: #ifdef 标识符  程序段1  #else  程序段2…
这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入"extern "C"{" 和 " }"处理其中的代码,其中{ }内部的代码是通过extern"C"进行处理.要明白为何使用extern"C",还得从cpp中对函数的重载处理开始说起.在c++中,为了支持重载机制,在编译生…
一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是"条件编译".有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句. 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2. 其中#else部分也可以没有,即: #ifdef 程…
预编译就是在对源文件进行处理之前(如在语法扫描和分析之前),先处理预处理部分,精简代码,然后再进行编译. 预处理命令有:#include 文件包含.#define 宏定义.以及要重点讲的#if.#ifdef.#else.#endif.#ifndef 条件编译.这里讲的是条件编译. 条件编译,分下面三种情况: 一. #ifdef_XXXX 程序段1 #else 程序段2 #endif 表示的是,如果XXXX被宏定义过,即 if (#define XXXX),则执行程序段1,否则执行程序段2,执行后…
本文转自博文C/C++预处理指令#define,#ifdef,#ifndef,#endif….这篇博文写得特别好,特转载. 本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifdef如果宏已经定义,则编译下面代码 #ifndef如果宏没有定义,则编译下面代码 #elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #en…
方法1: private static List<int> DistinctList(List<int> list) {//去除重复 HashSet<int> ha = new HashSet<int>(list); list.Clear(); list.AddRange(ha); return list; } 原理:HashSet每次存入会计算哈希值,哈希值相同则比较对方是否相同,不同则直接存入 方法2: private static List<in…
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作.说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译.这样做的好处是,经过处理后的代码,将会变的很精短. 关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在这里就不详述了.这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明.以下分3种情况: 1:情况1: #ifdef _XXXX ...程序段1... #else ...程序段…
转自:http://www.kuqin.com/language/20090806/66164.html 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件.定义宏.根据条件决定编译时是否包含某些代码.要完成这些工作,就需要使用预处理程序.尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的.预处理过程读入源代码,检查包含预处理指令的语句…