预处理宏定义

原创 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()函数将不会编译。

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Qt使用预处理文件

参考1:Qt SDK手册的Using Precompiled Headers一节;    预编译就是编译一部分代码编译为一个稳定的二进制文件。在编译其余代码的时候,编译器会加载已经保存该二进制文件...
  • oldmtn
  • oldmtn
  • 2013-01-22 11:22
  • 2595

C/C++预处理器的预定义宏

符合ANSI的预定义宏: __DATE__:表示当前源文件编译时的日期,格式为:月/天/年(Mmm dd yyyy)。 __FILE__:表示当前正在处理的源文件名称。 __LINE__:表示当...

C语言三种预处理功能

1. 宏定义 2. 文件包含 3. 条件编译 伪指令(或预处理指令)定义: 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存...

详解C/C++预处理器

C/C++编译系统编译程序的过程为预处理、编译、链接。预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理器指令以#号开头标识,末尾不包含分号。预处理命令不是C/C++语言...

C语言-预处理指令1-宏定义

本文目录 预处理指令简介一、不带参数的宏定义二、带参数的宏定义 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经...

C语言必备知识1(预处理,宏定义,内存分配)

C语言预处理 C 预处理器是一个文本替换工具 所有的预处理器命令都是以井号(#)开头。下面列出了所有重要的预处理器指令: 指令    描述 #define    定义宏 #include包含一个源...

c/c++预处理过程详解(一)之文件包含、宏定义

未经博主同意不得私自转载!不准各种形式的粘贴复制本文及盗图! 其实本文原本是打算研究一下#define的,后来发现预处理是个不可避免的问题。 在讲#define 前需要讲讲 # # 涉及到...

Preprocessor directives:预处理指令,宏定义,行控制,条件包含,错误提示,源文件包含,Pragma

原资料地址,翻译不当之处,请参看原文,最好能帮忙指正,谢谢 预处理器指令 预处理器指令是代码中的哪些以#开头的行,这些行不是程序的一部分,而是作为预处理器的标识。预处理器在开始编译前检查代码,并且在r...

C 语言 之 预处理-------- 宏定义

1 概述   使用过以“#”号开头的预处理命令。如包含命令# include,宏定义命令# define等。在源程序中这些命令都放在函数之外, 而且一般都放在源文件的前面,它们称为预处理部分。 ...

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

本文解决的问题:       1.  什么是预处理       2. 文件包含中尖括号和引号的区别    #include   #include "my.h"...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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