#pragma once与#ifndef...#define...#endif的区别!!!

#pragma once与#ifndef...#define...#endif 都是为了避免同一个头文件被.cpp文件调用多次。

#pragma once 由编译器提供保证所在文件只会被包含一次,它是基于磁盘文件的。但是如果头文件被拷贝多份,则会出现错误,不能保证值被包含了一次。

而#ifndef...#define...#endif 则是基于宏的,由宏定义来避免头文件被调用多次,由语言支持,可移植性好于#pragma once。只要宏名字不冲突,可以保证同一个头文件不会被包含多次,也能保证内容完全相同的两个文件不会被同时包含。但是如果宏名字冲突,就会发生一些不可预知的错误,比如找不到头文件。

#pragma comment 将一个注释记录放置到对象文件或可执行文件中

#pragma back 用来改变编译器的字节对齐方式

#pragma code_seg 它能够设置程序中的函数在 .obj 文件中所在的代码段。如果未指定参数,函数将放置在默认代码段 。text中。

猜你喜欢

转载自blog.csdn.net/Disremembrance/article/details/83661835
今日推荐