This question already has answers here:
#pragma once vs include guards? [duplicate]

(13个回答)


7年前关闭。




1,我看到很多地方,Header Guard和Pragma曾经以特定的顺序一起使用(顺序实际上有关系吗?)

2.另外一个疑问是,默认情况下,每当VS IDE生成一个新的类文件时,它将#pragma放入实现文件(.cpp)中一次。这真的需要吗?
#ifndef MYHEADER_H
#define MYHEADER_H

#pragma once

//my set of includes

哪种方法是标题保护或阻止多个包含的正确方法?

最佳答案

#pragma once

尽管许多流行的编译器/预处理器都支持,但它是非标准的。参见Is #pragma once a safe include guard?
#ifndef MYHEADER_H
#define MYHEADER_H
#endif // ndef MYHEADER_H

保证可以与所有C++编译器/预处理器一起使用。

同时使用两者没有意义。

关于c++ - header guard 和杂文曾经,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14903547/

10-13 04:05