1. #pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。
和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的
程序别人在使用你的代码的时候就不用再设置工程settings了
为了避免同一个文件被include多次
1 #ifndef方式
2 #pragma once方式 只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。
在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。
方式一:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
... ... // 一些声明语句
#endif
方式二:
#pragma once
... ... // 一些声明语句
#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况
#pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当然,相比宏名碰撞引发的“找不到声明”的问题,重复包含更容易被发现并修正。
方式一由语言支持所以移植性好,方式二 可以避免名字冲突
分享到:
相关推荐
#### 三、常见用法 下面是一些常见的 `#pragma` 指令及它们的功能说明: 1. **alloc_text**:用于指定代码应该被放置到哪个文本段。 2. **comment**:添加编译器注释。 3. **init_seg**:控制初始化段的位置和顺序...
`#pragma`是C语言中的一种预处理器指令,用于向编译器提供特定的命令或信息,以控制编译过程。在嵌入式系统开发,尤其是针对...希望这些信息能解答大家关于`#pragma`用法的疑惑,并帮助你更好地理解和使用这些功能。
其使用方法为: ```c #pragma message("消息文本") ``` 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 例如,当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有...
在这些预处理指令中,`#include` 和 `#pragma` 是两个最常用的指令,本文将详细介绍它们的含义和使用方法。 #include 指令 `#include` 指令是 C++ 中最基本的预处理指令,用于引入头文件(Header File)。头文件是...
### #pragma预处理指令用法详解 #### 一、概述 在C/C++编程中,预处理指令(Preprocessor Directives)是一种特殊的语句,它们在编译之前由预处理器处理。`#pragma`指令是预处理指令的一种,用于指示编译器执行...
### #pragma_命令集合 #### 一、概述 在软件开发过程中,为了更好地控制和优化编译过程,程序员经常会利用预处理指令来进行一系列特殊的编译器...掌握这些指令的使用方法对于提升编程效率和软件性能具有重要意义。
七、 #pragma的用法 7 (1) message 参数。 8 (2) 另一个使用得比较多的pragma参数是code_seg。格式如: 8 (3) #pragma once (比较常用) 8 (4) #pragma hdrstop表示预编译头文件到此为止,后面的头文件不进行预编译...
下面将详细介绍`#pragma`的几种常见用法及其应用场景。 #### 1. 消息输出(message) `#pragma message`常用于在编译时输出信息,这在调试代码或查看某些状态时非常有用。例如: ```cpp #pragma message("This is a...
这种方法简单易用,但需要注意的是,它的实现依赖于编译器支持。尽管大多数现代编译器都支持该指令,但在某些特殊情况下,可能需要使用传统的预处理指令,如 `#ifndef/#define/#endif` 的组合来实现类似功能。 示例...
详细介绍#pragma once用法,对于初学者可以学习一下
### #pragma 指令用法汇总与解析 在 C++ 编程中,`#pragma` 是一种预处理器指令,用于向编译器提供非标准的信息或指示。`#pragma` 不是语言的一部分,而是编译器扩展,主要用于控制编译器的行为,例如调整警告级别...
#pragma 指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的, 且对于每个编译器都是不同的。
c语言多线程执行循环的编译预处理指令 #pragma omp 的用法 #pragma omp parallel for
通过本文的介绍,我们了解了几种常用的`#pragma` 指令及其使用方法。这些指令可以在提高代码质量和编译效率方面发挥重要作用。希望本文能够帮助读者更好地利用这些功能强大的工具来优化自己的项目。
在学习和实践中,理解`#pragma`和`__asm__`的用法对于提升C语言编程技能和深入理解计算机底层工作原理至关重要。同时,掌握汇编语言也能帮助我们更好地理解和优化C代码,特别是在需要直接控制硬件资源或者进行性能...
下面我们将详细探讨`#pragma`指令的一些关键用法。 #### 1. `#pragma pack` `#pragma pack`是控制结构体成员对齐方式的指令。默认情况下,为了提高访问效率,编译器会自动为结构体成员分配内存,使它们按照一定的...
在本文中,我们将深入探讨四个主要的Pragma用法:`#pragma once`、`#pragma message`、`#pragma warning`以及`#pragma comment`。 1. **#pragma once** 这个指令用于确保头文件只被包含一次,避免了多重包含的问题...