2
下面的代碼編譯,的sigaction兩個結構和功能
struct sigaction sa;
memset (&sa, 0, sizeof (sa));
sa.sa_handler = &handler;
sigaction (SIGRTMIN + 5, &sa, NULL);
但如果我忽略struct
它給我的錯誤:
expected ';' before 'sa'
我使用C++中使用struct
關鍵字不練琴。
當我使用struct
時它是如何工作的。
這看起來像你實際上同時擁有一個'struct sigaction'和一個聲明的函數'sigaction'。在這種情況下,編譯器無法知道你的意思是第一行中的'struct',除非你告訴它。 – Angew
的確,有很多種語句/表達式在不知道哪個標識符是類型的情況下會不明確。所以編譯器不能猜測你是否在使用'sigaction'來表示類型或函數,你必須告訴它。這也是在模板中依賴類型之前的'typename'的原因。 –