#pragma 预处理分析
1. #pragma简介
(1)#pragma是编译器指示字,用于指示编译器完成一些特定的动作
(2)#pragma所定义的很多指示字是编译器和操作系统特有的
(3)#pragma在不同的编译器间是不可移植的
- 预处理器将忽略它不认识的#pragma指令
- 两个不同的编译器可能以两种不同的方式解释同一条#progma指令
一般用法:
#pragma parameter
注:不同的parameter参数语法和语义各不相同
2. # pragma message
(1)message 参数在大多数的编译器中都有相似的实现
(2)message 参数在编译时输出消息到编译输出窗口中
(3)message 可用于代码的版本控制
注:message是VC特有的编译器指示字,GCC中将其忽略
【#pragma在不同的编译器下的使用示例】
#include <stdio.h> #if defined(ANDROID20) #pragma message("Compile Android SDK 2.0...") #define VERSION "Android 2.0" #elif defined(ANDROID23) #pragma message("Compile Android SDK 2.3...") #define VERSION "Android 2.3" #elif defined(ANDROID40) #pragma message("Compile Android SDK 4.0...") #define VERSION "Android 4.0" #else #error Compile Version is not provided! #endif int main() { printf("%s\n", VERSION); return 0; }
浙公网安备 33010602011771号