#pragma message预编译指令使用技巧
2010-03-06 23:21
288 查看
本文转自http://blog.csdn.net/tunix126/archive/2007/03/05/1521008.aspx
一般情况下,#pragma message( messagestring )是在编译期间,将一个文字串(messagestring)发送到标准输出窗口。典型的使用方法是在编译时报告和显示信息。下面的代码段是编译期间在标准输出窗口显示一条消息:
#if _M_IX86 == 500
#pragma message( "Pentium processor build" )
#endif
messagestring 参数可以将文字串常量扩展成一个宏,从而可以显示任何形式的字符串。例如,下面的语句显示被编译文件的名字以及文件被最后一次修改的日期和时间:
#pragma message( "Compiling " __FILE__ )
#pragma message( "Last modified on " __TIMESTAMP__ )
#pragma message("Remember to write some actual code in this sample app!!"))
下面我们就利用这个特性,进一步扩展#pragma message的使用。先在一个头文件(假设为lfpragma.h)中定义下面的宏:
#define PTODO_LINENUMBER_TO_STRING(x) #x
#define PTODO_LINENUMBER(x) PTODO_LINENUMBER_TO_STRING(x)
#define INCLUDE_FILE_AND_LINE(string) __FILE__"(" PTODO_LINENUMBER(__LINE__) "): "string
然后在任何cpp文件中包含lfpragma.h文件,那么我们就可以象下面这样引用前面定义的宏。如:
#pragma message( INCLUDE_FILE_AND_LINE("Compiling ") __FILE__ )
#pragma message( INCLUDE_FILE_AND_LINE("Last modified on ") __TIMESTAMP__ )
#pragma message(INCLUDE_FILE_AND_LINE("Remember to write some actual code in this sample app!!"))
这 样使用#pragma message与通常使用的方法有什么不同呢?平常我们使用#pragma message时,在标准输出窗口中可以看见#pragma message的输出信息,但是鼠标点右键弹出的上下文菜单中“Go to Error/Tag”菜单项是置灰的,不可用。但是如果使用上面定义的宏,我们就可以激活上下文菜单中“Go to Error/Tag”,从而定位到相应的代码行。
一般情况下,#pragma message( messagestring )是在编译期间,将一个文字串(messagestring)发送到标准输出窗口。典型的使用方法是在编译时报告和显示信息。下面的代码段是编译期间在标准输出窗口显示一条消息:
#if _M_IX86 == 500
#pragma message( "Pentium processor build" )
#endif
messagestring 参数可以将文字串常量扩展成一个宏,从而可以显示任何形式的字符串。例如,下面的语句显示被编译文件的名字以及文件被最后一次修改的日期和时间:
#pragma message( "Compiling " __FILE__ )
#pragma message( "Last modified on " __TIMESTAMP__ )
#pragma message("Remember to write some actual code in this sample app!!"))
下面我们就利用这个特性,进一步扩展#pragma message的使用。先在一个头文件(假设为lfpragma.h)中定义下面的宏:
#define PTODO_LINENUMBER_TO_STRING(x) #x
#define PTODO_LINENUMBER(x) PTODO_LINENUMBER_TO_STRING(x)
#define INCLUDE_FILE_AND_LINE(string) __FILE__"(" PTODO_LINENUMBER(__LINE__) "): "string
然后在任何cpp文件中包含lfpragma.h文件,那么我们就可以象下面这样引用前面定义的宏。如:
#pragma message( INCLUDE_FILE_AND_LINE("Compiling ") __FILE__ )
#pragma message( INCLUDE_FILE_AND_LINE("Last modified on ") __TIMESTAMP__ )
#pragma message(INCLUDE_FILE_AND_LINE("Remember to write some actual code in this sample app!!"))
这 样使用#pragma message与通常使用的方法有什么不同呢?平常我们使用#pragma message时,在标准输出窗口中可以看见#pragma message的输出信息,但是鼠标点右键弹出的上下文菜单中“Go to Error/Tag”菜单项是置灰的,不可用。但是如果使用上面定义的宏,我们就可以激活上下文菜单中“Go to Error/Tag”,从而定位到相应的代码行。
相关文章推荐
- C++编译指令#pragma pack的配对使用
- C++编译指令#pragma pack的配对使用
- 【C/C++开发】C++编译指令#pragma pack的配对使用
- C++编译指令#pragma pack的配对使用
- Delphi中预编译指令如何使用
- 《IOS_C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- 技巧用法 --- #pragma warning的使用(一)
- Nginx技巧——在Server_Name指令中使用正则表达式
- Delphi中预编译指令的使用方法
- 编译指令#pragma详解
- 编译指令#pragma详解
- 命令行编译的基本指令/动态链接库的使用
- 关于Delphi中预编译指令的使用方法
- VC使用技巧:让你团队里所有人在编译工程时都要看你的代码注释
- 三星Note3预览图片与浮窗指令使用技巧
- #pragma message预编译指令使用技巧
- 《IOS_作业C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- 编译指令#pragma详解
- GCC使用技巧之编译选项
- QT小知识点(3) -Qt Creator 使用技巧之提高编译速度【使用jom参数】