#pragma once与#ifndef...#define...#endif 都是为了避免同一个头文件被.cpp文件调用多次。
#pragma once 由编译器提供保证所在文件只会被包含一次,它是基于磁盘文件的。但是如果头文件被拷贝多份,则会出现错误,不能保证值被包含了一次。
而#ifndef...#define...#endif 则是基于宏的,由宏定义来避免头文件被调用多次,由语言支持,可移植性好于#pragma once。只要宏名字不冲突,可以保证同一个头文件不会被包含多次,也能保证内容完全相同的两个文件不会被同时包含。但是如果宏名字冲突,就会发生一些不可预知的错误,比如找不到头文件。
#pragma comment 将一个注释记录放置到对象文件或可执行文件中
#pragma back 用来改变编译器的字节对齐方式
#pragma code_seg 它能够设置程序中的函数在 .obj 文件中所在的代码段。如果未指定参数,函数将放置在默认代码段 。text中。