我讀到 C 不假設函式多載。但是在這張幻燈片中,我們可以看到它是不正確的,我的教授說:“我們怎么可能在 C 中對相同的函式名稱有 2 個不同的簽名?”

有人可以解釋一下嗎?
uj5u.com熱心網友回復:
這是不可能的。像這樣的代碼:
int open(const char* path, int flags);
int open(const char* path, int flags, mode_t mode);
是無效的 C 并且不會編譯(但有效的 C )。
但是,C 支持可變引數函式,舊open函式是使用它實作的。它實際上宣告為:
int open(const char *path, int oflag, ... );
其中...允許通過stdarg.h.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318450.html
