對於該簡化的測試案例:「4字節」警告意味着什麼「填充類測試儀」?
#include <map>
class Tester {
int foo;
std::map<int, int> smap;
};
int main() {
Tester test;
return 0;
}
我得到以下編譯器警告:
$ clang++ -std=c++98 -Weverything test.cc
test.cc:5:24: warning: padding class 'Tester' with 4 bytes to align 'smap' [-Wpadded]
std::map<int, int> smap;
^
誰能解釋一下這個警告手段,我應該怎麼解決這個問題?
這意味着你已經打開了太多的警告。 :) –
是的,struct padding是一個*特性*,不是要警告的事情。我想國旗在那裏,因此需要知道內存中結構的*精確*佈局的人可以添加明確的填充,並在每次錯過時提醒他們,但這根本不是正常情況。 – hobbs
@RetiredNinja聖牛人,完全代表你的屏幕名稱:) – bobobobo