#pragma message预编译指令使用技巧
2016-03-24 09:36
295 查看
#pragma message预编译指令使用技巧
(hangwire发表于2003-2-20 13:26:58)
一般情况下,#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”,从而定位到相应的代码行。
如需要例子代码,请发邮件到 hangwire@sina.com 索取。
(hangwire发表于2003-2-20 13:26:58)
一般情况下,#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”,从而定位到相应的代码行。
如需要例子代码,请发邮件到 hangwire@sina.com 索取。
相关文章推荐
- C++实验2——【项目2】分段函数求值
- C++作业2
- 输入地址获得经纬度(一个方法)
- 数据仓库规范
- C#创建、安装一个Windows服务
- ASP.NET-本地化、全球化
- 对象与类(Java核心技术卷Ⅰ)
- poj1001
- jquery取值时id带点处理
- 防SQL注入过滤器的实现
- MFC创建模态对话框与非模态对话框 执行顺序
- 数据挖掘十大算法----EM算法(最大期望算法)
- maven安装scala插件
- cmd中mysql常用操作
- x86寄存器说明
- 解析 DOM 元素里的复杂属性值(下)
- 百度员工离职总结:如何做个好员工?
- C++实验2-标准体重
- struts <s:action>标签的用法
- ASP.NET-使用事件监视诊断程序异常