我寫了這個簡單的程序無與倫比paranthesis:在#if指令中缺少「)」
#include <time.h>
int main()
{
#if ((clock_t)1000)
int x = 10;
#endif
return 0;
}
在編譯時,我看到了以下錯誤:
Error C1012 unmatched parenthesis: missing ')'
有人能告訴我爲什麼我得到這個錯誤?
下更改線路:
#if ((clock_t)1000)
到:
#if (clock_t)1000
解決了編譯錯誤。
但由於((clock_t表示)1000)被定義爲使用在limits.h中頭文件作爲#define指令宏我不能做到這一點,:
#define CLOCKS_PER_SEC ((clock_t)1000)
,我需要使用直接。
有人能幫我解決這個錯誤嗎?
編輯:
請原諒我在這樣一個不明確的方式制定的問題。 重新定義我現在的問題:
我有以下代碼:
#include <time.h>
#define DUMMY_CLOCKS_PER_SEC ((clock_t)1000)
int main()
{
#if CLOCKS_PER_SEC != DUMMY_CLOCKS_PER_SEC
#error "out of sync"
#endif
return 0;
}
但這給人的編譯錯誤:
Error C1012 unmatched parenthesis: missing ')'
有人可以幫助我解決這個錯誤嗎?
預處理器使用它自己的簡單的語言是無關的C++。您不能將C++符號或類型名稱(如'clock_t')用作預處理器表達式的一部分。而且你當然不能使用預處理器來執行C++表達式,包括強制轉換。 –
你能告訴我們什麼'#if((clock_t)1000)'應該做什麼? – user463035818
注意預處理器只能編譯時確定。它用於定義符號,控制編譯的內容以及文本替換 – sp2danny