预处理宏定义

原创 2011年01月25日 11:18:00

条件编译debug、release版本

微软的编译器定义 _DEBUG 作为debug版本

gcc 定义 DEBUG 作为debug版本。xcode使用gcc,所以也是定义DEBUG,将工程模式设为Debug可以看到GCC_PREPROCESSOR_DEFINITIONS这个变量定义了DEBUG。OTHER_CFLAGS也行,这是直接设定gcc的参数,所以需要使用gcc的语法,比如-DDEBUG。当然最好还是使用xcode提供的预处理宏定义专用变量GCC_PREPROCESSOR_DEFINITIONS。

 

xcode中屏蔽NSLog, NSAssert

没有预处理宏定义用来屏蔽NSLog,如果使用了cocos2d可以使用它的CCLOG代替NSLog,CCLOG内部实现还是调用NSLog,但CCLOG使用预处理宏定义COCOS2D_DEBUG分别处理debug和release版本,debug版本就是NSLog,release版本为空。

对于NSAssert, 使用xcode提供的模板生成release版时会定义OTHER_CFLAGS为-DNS_BLOCK_ASSERTIONS,从而屏蔽NSAssert。使用cocos2d的模板生成的release版貌似没有定义NS_BLOCK_ASSERTIONS,需要自己添加。

 

屏蔽 C 标准库中的assert()

如果定义了 NDEBUG,则assert()函数将不会编译。

 

 

 

33.C语言宏定义和预处理

33.1.源码到可执行程序过程 33.2.预处理的意义及编程应用 33.3.头文件包含 33.4.注释和条件编译 33.5.宏定义的规则和使用解析 33.6.带参宏和带参函数的区别 33.7.内联函数...
  • Rston
  • Rston
  • 2016年04月09日 14:55
  • 1492

assert预处理宏与预处理变量

assertassert是一个预处理宏,由预处理器管理而非编译器管理,所以使用时都不用命名空间声明,如果你写成std::assert反而是错的。使用assert需要包含cassert或assert.h...
  • luoweifu
  • luoweifu
  • 2015年07月26日 23:47
  • 2283

预处理(宏定义、文件包含、条件编译)

预处理(pre-treatment),是指在进行最后加工完善以前进行的准备过程,具体应用在不同的行业或领域,会有不同的解释。       一、含义 程序设计中的预处理(Preprocess),程序...
  • bzhxuexi
  • bzhxuexi
  • 2013年10月18日 16:09
  • 3573

Unity预处理与宏定义

大家好!我是小唐,今天给大家分享一下unity预处理与宏定义。 如果在编辑模式下执行,打印结果如图: 也可以自己定义宏定义。 加入自定义的宏定义之后记住在PlayerSetting中的Sc...
  • tang_shiyong
  • tang_shiyong
  • 2015年01月06日 10:51
  • 889

预处理与宏定义

程序的编译过程: 预编译-----编译----汇编 1, 扩展头文件  ; 2,转成汇编语言;3,翻译成机器语言   预处理: 1:包含头文件   #include             #incl...
  • u013821295
  • u013821295
  • 2015年10月30日 13:36
  • 366

预处理:头文件、宏定义、条件编译

一:预处理过程         预处理器将进行宏替换、条件编译和包含指定的文件。以“#”开头的命令行就是预处理器处理的对象。这些命令行可以出现在任何地方,其作用可延续到所在翻译单元的末尾。每一行都会单...
  • gqtcgq
  • gqtcgq
  • 2015年08月30日 21:13
  • 1925

芯片型号的选择-stm32f10x.h中预处理宏定义

标准外设库(StdPeriph_Lib)支持STM32F10xxx系列全部成员:大容量,中容量和小容量产品。启动文件已经对不同的系列进行了划分,实际开发中根据使用的STM32产品具体型号,用户可以通过...
  • h_kingone
  • h_kingone
  • 2016年10月17日 23:56
  • 856

C语言中预处理功能之宏定义

宏定义   宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译   1. 不带参数的宏定义:   宏定义又称为宏代换、宏替换,简称“宏”。   格式: #d...
  • ccj2020
  • ccj2020
  • 2012年07月12日 12:53
  • 2515

预处理 宏定义

(1)预处理是C语言的一部分吗? (2)包含“#”的都是预处理吗? (3)预处理指令后都不需要加“:”吗?  在现学的C语言中预处理指令总共有12种。    #define :宏定义    #u...
  • qq_40364592
  • qq_40364592
  • 2017年10月23日 16:22
  • 39

多行宏定义中的注释问题

早上在写代码时遇到这样一个问题:即如何在一个拥有多行的宏定义中做注释?,这里把方法演化的过程贴出来,可能对某些朋友有些借鉴意义。 宏定义高深莫测,而且是比较细节的东西,详细说明请参见"C参考手册...
  • longbiao831
  • longbiao831
  • 2014年07月02日 17:29
  • 905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:预处理宏定义
举报原因:
原因补充:

(最多只允许输入30个字)