标题守卫和实用主义一次

时间:2013-02-15 21:24:28

标签: c++

1.我看到许多地方,Header guards和pragma曾经按照特定的顺序一起使用(顺序真的重要吗?)

2.另外一个疑问是默认情况下,只要VS IDE生成一个新的类文件,它就会将#pragma一次放到实现文件(.cpp)中。这真的需要吗?

#ifndef MYHEADER_H
#define MYHEADER_H

#pragma once

//my set of includes

哪种方法可以使用标题保护或者阻止多个包含?

2 个答案:

答案 0 :(得分:2)

#pragma once  

虽然受到许多流行的编译器/预处理器的支持,但仍然是非标准的。见Is #pragma once a safe include guard?

#ifndef MYHEADER_H
#define MYHEADER_H
#endif // ndef MYHEADER_H

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

同时使用两者是没有意义的。

答案 1 :(得分:0)

“#pragma once”是编译器特定的,可能不可移植。 “#ifndef / #define / #endif”更具可移植性,适用于所有预处理器。