一旦警告删除#pragma

时间:2014-04-17 14:11:55

标签: c++ pragma gcc-warning

我在#pragma once.cpp中使用.hpp,因此我会收到使用它的每个文件的警告。我没有找到任何禁用此类警告的选项,只有#ifndef MY_FILE_H #define MY_FILE_H /*...*/ #endif

那么你建议我用#pragma once s替换每个ifndef吗?

标题中的

#define MYFILE_H
// all the header

和其他文件:

#ifndef MYFILE_H
#include "myfile.hpp"
#endif
// the rest of the file

您怎么看?这样使用它会更好吗?或者有一个选项可以禁用GCC中的#pragma once警告,我不知道?

2 个答案:

答案 0 :(得分:12)

常见的方法是仅将警卫放在.h文件中:

#ifndef MYFILE_H
#define MYFILE_H
// all your myfile.hpp here
#endif

#pragma once
// all your myfile.hpp here

其余的文件(其他.cpp)对守卫不应该做任何事情。你不应该这样做警告。

答案 1 :(得分:-4)

确实可以始终使用#ifndef防护,但只是在编译使用#pragma once的源时删除警告我建议在编译时使用-w选项。

e.g。 gcc -w -o <output file> <input file(s)>