我在 C++ 程序中有一些输入标志,它们一开始都是 false。我想如果我能将它们全部初始化为 false 就好了。所以我尝试:
bool flagA, flagB, flagH = false;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个时,标志没有正确设置。flagA 显然被初始化为true?明确设置标志是有效的。
bool flagA = false;
bool flagB = false;
bool flagH = false;
Run Code Online (Sandbox Code Playgroud)
我正在使用 g++,并且没有收到编译器错误或警告。我知道程序行为不当,因为 flagA 设置为 true 时会将程序输出发送到本地打印机。就是想。
当编译器看到bool flagA, flagB, flagH = false;他翻译为
用户需要三个
bool值,namedflagA和flagB。flagC哦,并且flagC应初始化为false.
只是写得比较短
bool flagA;
bool flagB;
bool flagC = false;
Run Code Online (Sandbox Code Playgroud)
而且由于它们(可能)是局部范围变量,因此不保证用默认值初始化它们。