#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;
}

 

posted on 2018-04-26 22:21  arabain  阅读(75)  评论(0)    收藏  举报

导航