我想知道靜態是如何工作的。下面是一個例子:靜態整數
void count()
{
static int x = 1;
cout << "Static: " << x << endl;
x++;
return;
}
int main()
{
//Static variable test
cout << endl;
count();
count();
}
該程序給出了「1和2」的輸出。但我想知道什麼時候第二次調用函數「count」,爲什麼不執行「static int x = 1」行?
你可以做什麼樣的有趣事情? – Josh
我們使用該特性將單元測試添加到要運行的全局單元測試數組中。我們使用名爲TESTCASE(test_name)的宏創建一個名爲test_name ## _ XXXX的全局變量(我不記得XXXX是什麼,但是##將_XXXX添加到文本「test name」中,並將它全部作爲一個標識符) 。全局變量是一種類型,它的構造函數只是將一個函數指針添加到全局數組中以便稍後執行。然後宏通過爲測試函數本身創建簽名結束,然後添加大括號並開始測試函數的代碼。 – phonetagger
...這樣你就不必做一個頭文件來聲明你的單元測試函數的存在,然後去一些主要的「測試用例執行器」文件,並將你的新函數添加到不斷增長的測試列表中運行,這將分散在三個文件。通過這種方式,整個單元測試可以隔離到單個文件的幾行內容,並且很容易在源代碼中禁用,而無需單獨的文件將其註釋掉。 – phonetagger