說我有一個C頭(對於某些庫),它定義了一個枚舉和一個將這樣的枚舉作爲參數的函數。我可以編寫自己的包含該頭文件的代碼並鏈接庫,但編譯器如何知道函數實際期望的int類型?如果我理解的很好,這個標準並不需要一個確定枚舉類型的具體方法,所以......?C編譯器如何計算如何編譯f(枚舉)?
在此先感謝。
說我有一個C頭(對於某些庫),它定義了一個枚舉和一個將這樣的枚舉作爲參數的函數。我可以編寫自己的包含該頭文件的代碼並鏈接庫,但編譯器如何知道函數實際期望的int類型?如果我理解的很好,這個標準並不需要一個確定枚舉類型的具體方法,所以......?C編譯器如何計算如何編譯f(枚舉)?
在此先感謝。
調用函數的代碼和實現該函數的代碼大概都與該枚舉的聲明共享一個通用頭文件。由於它們相同,編譯器會生成匹配的代碼。
如果你混合使用&匹配編譯器,那麼在這種情況下你最終可能會遇到互操作性問題。
希望編譯器知道它在做什麼,是的,問題更多的是針對不同編譯器的情況。 – antony
雖然混搭編譯器還有很多其他問題。例如,如果每個int的大小不同,會怎樣? –
什麼是「什麼樣的int」和「什麼類型是枚舉的基礎?」你指的是不同編譯器下的整數是不同的大小? –