hel*_*hod 29
在C和C++编程语言中,#pragma once是一种非标准但广泛支持的预处理程序指令,旨在使当前源文件仅在一次编译中包含一次.因此,#pragma曾经提供与#include guards相同的目的,但有几个优点,包括:更少的代码,避免名称冲突,以及提高编译速度.
有关更多详细信息,请参阅Wikipedia文章.
Ale*_*mer 16
它用于替换以下预处理器代码:
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
一个很好的约定是添加两者来支持遗留编译器(这是很少见的):
#pragma once
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
因此,如果#pragma失败,旧方法仍然有效.