[RK_2014_1024][C++_02]The C Preprocessor Macros

1.The C Preprocessor Macros

The C Preprocessor
1 Overview
1.1 Character sets
1.2 Initial processing
1.3 Tokenization
1.4 The preprocessing language
2 Header Files
2.1 Include Syntax
2.2 Include Operation
2.3 Search Path
2.4 Once-Only Headers
2.5 Alternatives to Wrapper #ifndef
2.6 Computed Includes
2.7 Wrapper Headers
2.8 System Headers
3 Macros
3.1 Object-like Macros
3.2 Function-like Macros
3.3 Macro Arguments
3.4 Stringification
3.5 Concatenation
3.6 Variadic Macros
3.7 Predefined Macros
3.7.1 Standard Predefined Macros
3.7.2 Common Predefined Macros
3.7.3 System-specific Predefined Macros
3.7.4 C++ Named Operators
3.8 Undefining and Redefining Macros
3.9 Directives Within Macro Arguments
3.10 Macro Pitfalls
3.10.1 Misnesting
3.10.2 Operator Precedence Problems
3.10.3 Swallowing the Semicolon
3.10.4 Duplication of Side Effects
3.10.5 Self-Referential Macros
3.10.6 Argument Prescan
3.10.7 Newlines in Arguments
4 Conditionals
4.1 Conditional Uses
4.2 Conditional Syntax
4.2.1 Ifdef
4.2.2 If
4.2.3 Defined
4.2.4 Else
4.2.5 Elif
4.3 Deleted Code
5 Diagnostics
6 Line Control
7 Pragmas
8 Other Directives
9 Preprocessor Output
10 Traditional Mode
10.1 Traditional lexical analysis
10.2 Traditional macros
10.3 Traditional miscellany
10.4 Traditional warnings
11 Implementation Details
11.1 Implementation-defined behavior
11.2 Implementation limits
11.3 Obsolete Features
11.3.1 Assertions
11.4 Differences from previous versions
12 Invocation
13 Environment Variables
GNU Free Documentation License
ADDENDUM: How to use this License for your documents
Index of Directives
Option Index
Concept Index

Table of Contents

5.本文网址[tom-and-jerry发布于2014-10-25 15:01]

http://www.cnblogs.com/tom-and-jerry/p/4050131.html

时间: 2024-10-13 23:24:58

[RK_2014_1024][C++_02]The C Preprocessor Macros的相关文章

xcode中的 preprocessor macros

ios有没有全局宏,或者在工程属性里设置宏?那么如何操作 比如有个宏(#define AUTO_CONNECT)在所有/整个工程的代码里这个宏都是有效的. ------解决方案-------------------- 在工程的设置属性里搜索preprocessor macros可以看到DEBUG的定义,再添加上自己的项目名就好了

fatal error C1189: #error: "Oops: min() and/or max() are defined as preprocessor macros. Define NOMINMAX macro before including any system headers!"

1.问题描述 vs2015 使用pg数据库的C++库文件4.0.1版本libpqxx.dll,包含头文件#include "pqxx\pqxx" 出现这个错误: fatal error C1189: #error:  "Oops: min() and/or max() are defined as preprocessor macros.  Define NOMINMAX macro before including any system headers!" 2.原

NSLog 去除上线版本

创建pch 文件 STEP1: #ifdef DEBUG #   define NSLog(...) NSLog(__VA_ARGS__) #else #   define NSLog(...) #endif #define ALog(...)  NSLog(__VA_ARGS__) STEP2: a. TARGETS 中 Build Settings 设置 Apple LLVM7.1 - Preprocessing 里面 Preprocessor Macros : 如果在测试版本打印日志,De

iOS开发中关于nslog的几种流行做法小结

不管哪种方法,都必须在PCH文件中做下宏定义 DEBUG和RELEASE要分开,RELEASE时log打印要取消 方法一:简单直接,用几行代码搞定,简洁但功能少 #ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #define debugMethod() NSLog(@"%s", __func__) #else #define NSLog(...) #define debugMethod() #endif 这个DEBUG在哪设置呢,

SDWebImage支持WebP格式图片

SDWebImage本身就已经支持了webp格式的图片 1.下载libwebp https://github.com/webmproject/libwebp 然后你需要先安装好有homebrew或者macports 安装homebrewh很简单,执行一条命令即可 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 以下用homebrew安装下面3个组件 aut

Android gdb so

gdb debug an android application 1.gdb 要有gdbserver 一般模拟器默认装有gdbserver,如2.3.3的模拟器,看一下有没有: D:\Developer\sdk\platform-tools>adb shell ls -l /system/bin/gdb*-rwxr-xr-x root shell 5664 2010-07-01 05:03 gdbjithelpe-rwxr-xr-x root shell 151868 2010-05-11 09

Autotools Mythbuster

Preface Diego Elio?"Flameeyes"?Pettenò Author and Publisher?<[email protected]> SRC=https://autotools.io/index.html David J.?"user99"?Cozatt Miscellaneous Editing?<[email protected]> Copyright ? 2009-2013 Diego Elio Pettenò

NSAssert详解

NSAssert是foundation.framework中定义的一个宏:#define NSAssert(condition, desc, ...)第一个参数为一个条件判断,如果为假,则抛出异常,显示第二个参数所描述的信息. 例如:NSAssert(2>=3, @"2>=3 is false!");在debug模式下运行,会终止程序,并抛出如下异常:2013-04-24 09:24:16.618 TestAssertion[825:c07] *** Terminating

NSLog设置不打印

在调试应用程序的时候经常需要进行打印需要的信息,但是当打印的地方多了之后在真机上跑应用程序就会相应的慢很多,输出语句多了之后会在很大程序上影响应用程序的性能.这里我们可以定义一个宏来控制是否输出调试信息. 在Release模式下禁止输出调试信息 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时,再取消这些注释,这实在是一件无趣而耗时的事!还好,还