1.我看到许多地方,Header guards和pragma曾经按照特定的顺序一起使用(顺序真的重要吗?)
2.另外一个疑问是默认情况下,只要VS IDE生成一个新的类文件,它就会将#pragma一次放到实现文件(.cpp)中。这真的需要吗?
#ifndef MYHEADER_H
#define MYHEADER_H
#pragma once
//my set of includes
哪种方法可以使用标题保护或者阻止多个包含?
答案 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”更具可移植性,适用于所有预处理器。