一旦警告删除#pragma

the*_*oon 4 c++ pragma gcc-warning

我正在使用#pragma once我的.cpps和.hpps,因此我会收到每个使用它的文件的警告.我没有找到任何选项来禁用这种警告,只有#ifndef MY_FILE_H #define MY_FILE_H /*...*/ #endif.

那么你会建议我#pragma onceifndefs 替换每个吗?

在标题中:

#define MYFILE_H
// all the header
Run Code Online (Sandbox Code Playgroud)

在其他文件中:

#ifndef MYFILE_H
#include "myfile.hpp"
#endif
// the rest of the file
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ger 12

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

#ifndef MYFILE_H
#define MYFILE_H
// all your myfile.hpp here
#endif
Run Code Online (Sandbox Code Playgroud)

要么

#pragma once
// all your myfile.hpp here
Run Code Online (Sandbox Code Playgroud)

其余的文件(其他.cpp)应该对卫兵没有任何作用.这样做你不应该收到警告.