C/C++ 条件编译】的更多相关文章

本文导读: C#的预处理器指令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#define.#undef.#if,#elif,#else和#endif等等,下面介绍C#中使用#define进行条件编译的实例. C#中条件编译指令用于按条件包含或排除源文件中的某些部分.在Visual Studio中,会看到被排除的代码显示为灰色. 一.#define可以用来做什么 1.当计划发布两个版本的代码的时候.即基本版和拥有更多版本的企业版,就可以用到条件编译指令: 2.…
本文导读: C#的预处理器指令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#define.#undef.#if,#elif,#else和#endif等等,下面介绍C#中使用#define进行条件编译的实例. C#中条件编译指令用于按条件包含或排除源文件中的某些部分.在Visual Studio中,会看到被排除的代码显示为灰色. 一.#define可以用来做什么 1.当计划发布两个版本的代码的时候.即基本版和拥有更多版本的企业版,就可以用到条件编译指令: 2.…
1.为什么需要条件编译 客户的需求在不停地发生变化,一会儿需要这个功能,一会儿不需要这个功能.我们可以使用条件编译来方便地裁剪功能. 2.条件编译语句#if 条件编译语句#if的形式是 #if expression ... #elif expression ... #elif expression ... #else ... #endif 其中#elif分支语句是可选的,#else分支语句也是可选的. 如果expression的逻辑值为"真",则在预编译阶段,保留这段代码.如果逻辑值为…
近期由于一些莫名其妙的原因开始学c++,我觉得我哪天要是挂了也是被自己给折腾死的,算了,反正不是折腾死就是被淘汰,当是没事打发时间了,废话不多说,开始今天的主题. 之前接触的注释就是注释,条件语句就是条件语句,前两天突然遇见一个很高级的术语叫做条件编译,把我理解的前因后果详细地说说清楚吧. 一.注释 首先从注释开始说起,注释最常见不过,我们也会经常使用,虽然不同语言有不同风格的注释方法,但是很多都是异曲同工,互相之间可以相互借鉴和参考的.C/C++最常用的注释就两种: 1.  //单行注释 2.…
http://bbs.9ria.com/thread-418864-1-1.html 一直希望as3 可以支持条件编译,即满足A时编译函数1,满足B时则编译函数2. 最佳百度了之后,发现原来是可以实现的.首先我要实现的是在windows, 安卓和IOS下的不同编译.-define PLATFORM::条件 布尔值 在我的windows as3项目里设置编译参数 -define PLATFORM::WINDOWS true -define PLATFORM::IOS false -define P…
一开始是在一些源代码中看到这些语法符号,了解到这就是" 条件编译"技术…
第一步:配置管理器中新建解决方案配置 第二步:定义条件编译符号: 第三步:在代码中使用自定义的条件编译 #if CustomDebug Console.WriteLine("dsads");#endif…
学习过C语言或者C++语言的同学都知道它们支持条件编译,那么今天我们来学习下在Java语言中如何实现条件编译.Java语言本身没有提供条件编译,但是Java编译器对.java文件编译为.class文件做了优化,下面通过一个例子给大家详细讲解. 下面先给出HelloWorld.java文件: package com.test; /** * Test Demo */ public class HelloWorld { public static void main(String[] args) {…
在"工程"上单机右键,"属性"--->"生成"--->"条件编译符号"后边的输入框中,输入自定义的条件编译变量.多个变量用";"分割.…
作者:zyl910 从VS2010开始,提供了一个平台工作集(Platform ToolSet)选项用于配制vc编译版本.到了VS2012,更是因为默认平台工具集不支持WindowsXP,导致经常需要切换到xp版平台工具集,VS2013也是如此.在某些时候,我们需要使用条件编译判断平台工具集的版本去做不同的操作,而VS中没有提供一个标准的检测办法.本文就是我的一些心得. 在设置了平台工作集后,环境变量宏会发生变换,而且“VC++目录”.“预处理器定义”等地方也会发生一些变化. 以VS2013为例…
在C语言中,预处理指令是以#号开头的代码行.#号必须是该行除了任何空白字符外的第一个字符.#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符.整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换. 条件编译指令将决定哪些代码被编译,哪些是不被编译的.可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件. 下面是部分预处理指令: 指令用途 #  空指令,无任何效果 #include  包含一个源代码文件 #define  定义宏 #undef  取消已定义…
//#if 条件编译 //一般用于产品各个版本的语言包 #include<stdio.h> #include<stdlib.h> //#都是预处理指令,条件表达式必须在预处理里面 //所以条件表达式必须是宏表达式 //双分支条件编译 //#if 条件表达式 //代码段1 //#else //代码段2 //#endif //#endif结束条件编译 //#if,#else和C语言里的if else功能一样,但是时间开销不一样 //if else会编译所有的代码,源码会较长,编译时间会…
1./*...*/ 是注释,mysql不会执行.2.mysql对标准sql进行了扩展,包含了一些自己的特性.3./*!...*/ 是一种特殊的注释,其他的数据库产品当然不会执行.mysql特殊处理,会选择性的执行.可以认为是:预编译中的条件编译.4.特别注意 50100,它表示5.01.00 版本或者更高的版本,才执行.…
c语言条件编译#ifdef与#if defined defined NAME是用来判断NAME是否被定义了(被用define定义了). #ifdef NAME == #if defined(NAME) #ifndef NAME == #if !defined(NAME) 但是在处理双重和多重判断时,defined的优势就显示出来了 #ifdef NAME1 #ifdef NAME2 ...... #endif #endif 可以写成 #if defined(NAME1) && define…
http://www.cnblogs.com/chengulv/p/4579528.html 界面操作参考 这样正对不同环境就可以编译出不同的exe或者dll,做到一个项目的灵活多变.条件编译还可以满足库的更改,X86,X64直接切换也很灵活.…
预处理是指在编译器之前运行,常以“#”开头 包含3个方面的内容: 1)宏定义与宏替换 2)文件包含 3)条件编译 宏定义与宏替换: 宏名一般大写,替换发生在编译之前,且是机械替换,不做语法检查,也不分配内存,不占用运行时间,只占用编译时间.由于宏常量没有类型,编译时不会进行类型安全检查,且进行字符替换时可能会出现错误.两种类型: 1)符号常量的宏定义和宏替换  #define 标识符 字符串 #include<iostream> #define P 3+4 using namespace st…
条件编译 一般情况下,源程序中所有的行都参加编译.但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile).                                    ---百度百科 具体应用场景: 实现一个在 Linux和Windows上使用的程序,当程序在Linux上运行时,运行某一段代码,当程序在Windows上运行时,运行另一段代码. 实现一个区分 Debug 和 Release 模式的程…
转:http://www.lite3.cn/blog/?p=404&cpage=1 知道C/C++ 有条件编译,一直想着AS要是也有条件编译就好了,今天搜了半天Google,终于让我找到了 下面翻译livedocs.adobe.com上一篇文章,英文不怎么好,有些是Google翻译的,然后我再纠正下语句,大家不要见怪.  想要包含或排除某些代码块,你可以使用条件编译.mxmlc编译器允许你在编译时传递常量值到应用程序.通常,您传递一个布尔值用于包含或排除调试代码.下面的例子通过使用一个Boole…
这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部 分内容指定编译的条件,这就是“条件编译”.有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句.     条件编译命令最常见的形式为:     #ifdef 标识符     程序段1     #else     程序段2     #endif          它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序…
在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令.预处理命令属于C语言编译器,而不是C语言的组成部分.通过预处理命令可扩展C语言程序设计的环境. 一.预处理的工作方式 1.1.预处理的功能  在集成开发环境中,编译,链接是同时完成的.其实,C语言编译器在对源代码编译之前,还需要进一步的处理:预编译. 所以,完整的步骤是:预编译 -> 编译 -> 链接 预编译的主要作用如下: 1.将源文件中以”include”格式包含的文件复制到编译的源文件中. 2.用实际值替换用“#d…
1.volatile: 要求参数修改每次都从内存中的读取.这种情况要比普通运行的变量需要的时间长. 当设置了成按照C99标准运行之后,使用volatile变量之后的程序运行的时间将比register的长. 因为volatile是强制程序中内存中读取数据,所以可以通过修改内存中的这个参数来不断改变传入到cpu里的这个值. 2.可变参数 再如,字符串类型的可变参数 当程序运行之后,会出现计算器,笔记本,打印出已经开启的线程. 3.void *memset(void *s,int ch,size_t…
1. 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都include了同一个头文件.而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突. 还是把头文件的内容都放在#ifndef和#endif中吧.不管你的头文件会不会被多个文件引用,你都要加上这个.一般格式是这样的: #ifndef <标识>  #define <标识> ......  ...... #endif <标识>在理论上来说可…
1: alert("浏览器版本为:"+sSuffix) 用来判断浏览器的版本很好用 var b = /*@cc_on!@*/false; 其中/*@cc_on ..... @*/之间的部分可以被ie识别并作为程序执行,同时启用ie的条件编译. 最常用的变量是@_jscript_version:js版本,最后一位是ie主版本号 示例: 1: var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ; 2: /*@cc_on alert(&…
在Objective-C中,我们经常使用预处理指令来帮助我们根据不同的平台执行不同的代码,以让我们的代码支持不同的平台,如: 1 2 3 4 5 6 7 8 9 #if TARGET_OS_IPHONE       #define MAS_VIEW UIView                #elif TARGET_OS_MAC       #define MAS_VIEW NSView   #endif 在swift中,由于对C语言支持没有Objective-C来得那么友好(暂时不知swif…
在开发中经常会遇到需要条件编译一段代码,即: #ifdef DEBUG { 如果定义了DUBUG,则执行此段代码!} #else {否则执行此段代码!} 这就需要通过宏开关来进行条件编译,也就是常说的编译开关. 下面给出详细的代码实现. //hello.c #include<stdio.h> void main() { #ifdef DEBUG printf("#ifdef DEBUG is running!\n"); #else printf("#else is…
在swift中使用条件编译比较直接 #if <condition> #elseif <condition> #else #endif 例如 :在debug模式和release模式编译不同代码 #if DEBUG #else #endif 在swift中判断iOS版本是否可用 更简单啦 //#available(iOS 8, *) //数字随便改啦 if #available(iOS 9.0, *) { //如果是9.0 或者以上 }else{ } 编辑标记 在swift中支持几种编…
keil A51中条件编译指令IF与$IF的区别:1.IF和$IF是不等价的,不要混淆了;2.带前缀$的条件编译$IF用法:(汇编器指示命令Assembler Directive)只能用来测试由$SET和$RESET指令定义的符号.$SET使用方法:Options — A51 — Set. SET (symbol <<= number>> << ,symbol <<= number >> ... >>) $RESET使用方法:Opti…
摘自http://maosidiaoxian.iteye.com/blog/1290740 条件编译绝对是一个好东西.如在C或CPP中,可以通过预处理语句来实现条件编译.代码如下: #IFDEF DEBUG #UNDEF DEBUG #ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */ #ELSE /* code block 2 */ #ENDIF 但是在JAVA中却没有预处理,宏定义这些东西,而有时在一些项目中,我们可能需要条件编译.那么,…
1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本.该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义. (1)简单的宏定义: #define <宏名> <字符串> 例: #define PI 3.1415926 (2) 带参数的宏定义 #define <宏名> (<参数表>) <宏体> 例…
最近项目需要开发多个版本,  而Flash又没有像C++ 那样的 #ifdef,  来让一套代码支持多个版本的编译发布; 经过研究, 终于知道Flash Builder如何支持条件编译: 1. 在项目属性->ActionScript 编译器;  附加的编译器参数 里加上 -define=IFDEF::Debug,true ;   (参见:http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html ) 2. 在…