請解釋的代碼在C下面的代碼片段是如何有效的一個混淆代碼用C
int main(c, v) char *v; int c;{
//program body
}
我對面的國際C語言混亂代碼大賽一些例子迷迷糊糊的我只是好奇。
請解釋的代碼在C下面的代碼片段是如何有效的一個混淆代碼用C
int main(c, v) char *v; int c;{
//program body
}
我對面的國際C語言混亂代碼大賽一些例子迷迷糊糊的我只是好奇。
這是K&R風格的函數聲明。請參閱Function declaration: K&R vs ANSI
但是,我不認爲它具有main()
的有效簽名,因爲v
不是正確的類型。請參閱What are the valid signatures for C's main() function?
這是ANSI之前的函數聲明風格,如果你指的是爲什麼char * v; INT;不在括號內。
這是「K & R C」,其中函數參數在參數列表的末尾和函數主體的開始之間聲明。
這只是K-& R風格的函數定義,雖然標記爲「過時」,但標準仍然允許。該代碼中不好的是,第一個參數應該是char **v
(或char *v[]
)是標準的。
請參閱此問題:http://stackoverflow.com/questions/8869768/defining-the-functions-argument-type-after-the-is-it-a-very-old-standard – 2012-01-27 13:44:16