我在「.h」頭文件中聲明的布爾全局變量,並初始化它「的.cpp」文件, 我遇到一個錯誤,我搜索的解決方案,發現我必須把它定義爲extern如下:在C初始化的全局變量++
//in .h file
extern bool blindFound;
// in .cpp file
bool blindFound = false;
但是當我打印內的其他方法它的價值,它給了我(空)不假!
感謝,
我在「.h」頭文件中聲明的布爾全局變量,並初始化它「的.cpp」文件, 我遇到一個錯誤,我搜索的解決方案,發現我必須把它定義爲extern如下:在C初始化的全局變量++
//in .h file
extern bool blindFound;
// in .cpp file
bool blindFound = false;
但是當我打印內的其他方法它的價值,它給了我(空)不假!
感謝,
您應該使用std::boolapha
是C++。
答案以上是一個小錯誤。
http://www.parashift.com/c++-faq-lite/iostream-vs-stdio.html
請儘量避免老printf
從C
http://www.cplusplus.com/reference/ios/boolalpha/
// modify boolalpha flag
#include <iostream> // std::cout, std::boolalpha, std::noboolalpha
int main() {
bool b = true;
std::cout << std::boolalpha << b << '\n';
std::cout << std::noboolalpha << b << '\n';
return 0;
}
它往往是更好的功能來包裝這些變量,使其局部靜態對象。這有效地避免了初始化順序問題。
bool &blindFound()
{
static bool blindFound = false;
return blindFound;
}
用法:
blindFound() = true; // set value
bool b = blindFound(); // read value
看一看的C++ FAQ關於所謂的「靜態變量初始化順序的悲劇」的更多信息。
如何打印? – hivert
printf(「blindFound:%s \ n」,blindFound); – noor