#pragma 指示符的用法
2006-12-02 15:09
134 查看
写的比较好,所以转过来。。。。以后忘记的话还可以复习一下,呵呵^_^!
#pragma 指示符
嗯,今天说点什么呢?昨天的话题中说到了使用“#pragma”指示符设定连接器参数来导出函数,其实“#pragma”的功能远远不止于此,大部分我都没用过,今天就随便说说的“#pragma”指示符中我所使用过一些东东吧。
1.指示文件只包含一次
在头文件中,一般在整个工程中我们只要包含一次就够了,但是如果我在多个 .c/.cpp 文件中都要包含着个头文件,比如 Windows.h,那很多声明等等岂不是有两次了?解决这个问题的传统的方法是在头文件开始出用 #define 定义一个宏,比如 Windows.h 中:
#ifndef _WINDOWS_
#define _WINDOWS_
然后在文件结为加上 #endif,这样就可以避免被包含多次。但是这样的后果是代码的可读性较差 (个人观点),VC 给我们提供了另外一个途径,那就是在文件的前面加上:
#pragma once”
是不是很方便?
2.使警告无效
有时候我们不得不对变量进行强制转换,由此引来编译器的一番警告,特别是 C++ 中,类型检查相对于 C 更为严格。这虽然不影响什么,但是看起来多不爽——我是故意要这样的,你警告什么!:)这时候你看到警告类型,比如“warning C4311: “类型转换” : 从“HHOOK”到“BOOL”的指针截断”,在前面加上:
#pragma warning(disable: 4311)
编译器就没话说了:)。
3.指定连接要使用的库
比如我们连接的时候用到了 WSock32.lib,你当然可以不辞辛苦地把它加入到你的工程中。但是我觉得更方便的方法是使用 #pragma 指示符,指定要连接的库:
#pragma comment(lib, "WSock32.lib")
4.显示编译消息
没多少用处,举个例子吧:
#ifdef _DEBUG
#pragma message("编译连接为调试模式...")
#endif // _DEBUG
#pragma 指示符
嗯,今天说点什么呢?昨天的话题中说到了使用“#pragma”指示符设定连接器参数来导出函数,其实“#pragma”的功能远远不止于此,大部分我都没用过,今天就随便说说的“#pragma”指示符中我所使用过一些东东吧。
1.指示文件只包含一次
在头文件中,一般在整个工程中我们只要包含一次就够了,但是如果我在多个 .c/.cpp 文件中都要包含着个头文件,比如 Windows.h,那很多声明等等岂不是有两次了?解决这个问题的传统的方法是在头文件开始出用 #define 定义一个宏,比如 Windows.h 中:
#ifndef _WINDOWS_
#define _WINDOWS_
然后在文件结为加上 #endif,这样就可以避免被包含多次。但是这样的后果是代码的可读性较差 (个人观点),VC 给我们提供了另外一个途径,那就是在文件的前面加上:
#pragma once”
是不是很方便?
2.使警告无效
有时候我们不得不对变量进行强制转换,由此引来编译器的一番警告,特别是 C++ 中,类型检查相对于 C 更为严格。这虽然不影响什么,但是看起来多不爽——我是故意要这样的,你警告什么!:)这时候你看到警告类型,比如“warning C4311: “类型转换” : 从“HHOOK”到“BOOL”的指针截断”,在前面加上:
#pragma warning(disable: 4311)
编译器就没话说了:)。
3.指定连接要使用的库
比如我们连接的时候用到了 WSock32.lib,你当然可以不辞辛苦地把它加入到你的工程中。但是我觉得更方便的方法是使用 #pragma 指示符,指定要连接的库:
#pragma comment(lib, "WSock32.lib")
4.显示编译消息
没多少用处,举个例子吧:
#ifdef _DEBUG
#pragma message("编译连接为调试模式...")
#endif // _DEBUG
相关文章推荐
- #pragma的用法
- #pragma指令用法
- #pragma 用法
- STVD环境下的#pragma section 用法
- Swift3.0 类似OC中#pragma mark 和 #waring的用法,大注释和警告的设置
- Visual C++ 中 #pragma 指示符的使用
- Linux之#pragma的用法
- #pragma的用法
- 条件指示符 #ifdef 的用法
- IOS笔记 #pragma mark的用法
- #pragma 用法
- #pragma用法详解
- 预处理指令pragma常见用法集锦(#pragma once、#pragma comment和#pragma warning)
- #pragma的一些用法
- #pragma的用法
- #pragma用法详解
- 预处理指令 #pragma 的一些用法
- #pragma 的用法
- #pragma 的用法
- C++笔记——c++中#pragma的用法