可能重复:
#pragma一次vs包括警卫?
我应该什么时候使用#pragma once?
我应该什么时候使用#ifndef HEADER_H_INCLUDED?
小智 10
#ifndef/#define/#endif技巧适用于任何C编译器,其中一些编译器可以加速编译过程.#pragma技巧是非标准的,只适用于少数C编译器,并且可能会导致不支持它的语义不同.
区别在于后者是C而前者不是。永远不要使用#pragma once; 总是使用#ifndef.
使用该#ifndef方法时要注意的另一件事是,任何以两个下划线开头或一个下划线后跟一个大写字母的预处理器符号都是保留的,不能使用。您应该使用类似#ifndef MYHEADER_H和不 使用的东西#ifndef _MYHEADER_H。