pragma message的作用

转自:http://blog.csdn.net/normallife/article/details/3710838

pragma message是用来告诉程序员,程序在编译时期的信息。而outputdebugstr则是告诉程序员,程序在运行时期的信息。

下面就以一个例子来讲解pragma message。

配合#if/#ifdef/#ifndef设置编译时的提示信息,例如:

//test.cpp 

#define UNICODE 

#ifdef UNICODE
    #pragma message("使用UNICODE字符集")
#else
    #pragma message("使用ANSI字符集")
#endif 

int main()
{
    return 0;
} 

使用cl.exe编译时,会根据是否定义了UNICODE,而有不同的提示 
定义了UNICODE之后,在命令提示符下编译,显示为

  D:/code>cl test.cpp /c /EHsc /nologo 
  test.cpp 
  使用UNICODE字符集

如果不定义UNICODE,则会显示为

  D:/code>cl test.cpp /c /EHsc /nologo 
  test.cpp 
  使用ANSI字符集

IDE模式下编译,则是显示在output窗口;如果在console模式下编译,则显示在console 窗口。这样程序员根据输出信息就知道字符时unicode 还是 ansi的。

时间: 2024-10-10 07:28:42

pragma message的作用的相关文章

#pragma message预编译指令使用技巧

一般情况下,#pragma message( messagestring )是在编译期间,将一个文字串(messagestring)发送到标准输出窗口.典型的使用方法是在编译时报告和显示信息.下面的代码段是编译期间在标准输出窗口显示一条消息: #if _M_IX86 == 500#pragma message( "Pentium processor build" )#endif messagestring 参数可以将文字串常量扩展成一个宏,从而可以显示任何形式的字符串.例如,下面的语句

definition to expand macro then apply to pragma message

/* Some test definition here */ #define DEFINED_BUT_NO_VALUE #define DEFINED_INT 1 #define DEFINED_STR "ABC" /* definition to expand macro then apply to pragma message */ #define VALUE_TO_STRING(x) #x #define VALUE(x) VALUE_TO_STRING(x) #define

C++ #pragma 预处理指令

#pragma 预编译指令的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征. 其使用的格式一般为: #pragma Para.其中Para 为参数,常见的参数如下: (1)Message参数 Message参数编译信息输出窗口中输出相应地信息,使用方法如下: #pragma message("消息文本") 使用示例,假如在程序中我们定义了很多宏来控制源代码版本的

#pragma的用法

在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的. 其格式一般为: #pragma  para.其中para为参数,下面来看一些常用的参数.  1)message 参数 message参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相

pragma comment

pragma指令简介 在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数. message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的.其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来. 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可

【C语言】pragma

① #pragma comment (lib, "libgsl.a") 这是告诉编译器在编译形成的.obj文件和.exe文件中加一条信息,使得 链接器在链接库的时候要去找libgsl.a这个库,不要先去找别的库. 加入这条语句后,就不需要把libgsl.a这个文件额外通过链接器加入到工程里了. #pragma comment( comment-type ,["commentstring"] ) comment-type是一个预定义的标识符,指定注释的类型,应该是co

#pragma编译指令

#pragma alignment#pragma anon_struct#pragma argsused#pragma checkoption#pragma codeseg#pragma comment#pragma defineonoption#pragma exit#pragma hdrfile#pragma hdrstop#pragma inline#pragma intrinsic#pragma link#pragma message#pragma nopushoptwarn #prag

聊聊 #pragma 和 // MARK:

我去,就这两个东西还要讲?是OC或Swift开发人员都知道是怎么回事好吗?不就是用来标记和分组代码的吗?难道还有别的装逼技能? 当然,其实问大部分人说这两个是什么作用,或者是除了这两个还知道什么的情况下.很多人都只知道这两个是用来组织代码的.然而这样说也对也不对,确实我们常用的情况是都是用这两个来组织代码的,但是如果看过很多开源的人肯定看过一下的形式的代码: #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc

#pragma 预处理指令详解

原文链接:http://blog.csdn.net/jx_kingwei/article/details/367312 #pragma  预处理指令详解              在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的.