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 VAR_NAME_VALUE(var) #var "="  VALUE(var)

/* Some example here */

#pragma message(VAR_NAME_VALUE(NOT_DEFINED))

#pragma message(VAR_NAME_VALUE(DEFINED_BUT_NO_VALUE))

#pragma message(VAR_NAME_VALUE(DEFINED_INT))

#pragma message(VAR_NAME_VALUE(DEFINED_STR))

时间: 2024-10-15 16:49:21

definition to expand macro then apply to pragma message的相关文章

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("使

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

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

C++ #pragma 预处理指令

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

关于C++代码中的#pragma预处理指令

预处理指令是指在编译器编译代码时,提供按条件跳过源文件中的代码段(节).报告错误(错误信息以及行号)和警告条件,以及描绘源代码的不同区域的能力. 总是占用源代码中的单独一行,并且总是以 # 字符和预处理指令名称开头.# 字符的前面以及 # 字符与指令名称之间可以出现空白符. 下面是可用的预处理指令: #define 和 #undef,分别用于定义和取消定义条件编译符号. #if.#elif.#else 和 #endif,用于按条件跳过源代码中的节. #line,用于控制行号(在发布错误和警告信息

#pragma的用法

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

pragma comment

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

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