a() { return 3; } // 隱式 int a()
b(int a, int b) { return a+b; } // 隱式 int b(int, int)
int main() {
printf("%d\n", a(2)); // 3(傳參被忽略)
printf("%d\n", b(300,5000)); // 5300
}
現代標準:C99移除隱式int,**必須顯式聲明返回類型**。編譯器應報警告/錯誤。
void *p; p++; // 錯誤:void 無大小,無法指針運算
pointer to void cannot be incrementedchar*,遞增1字節,編譯通過建議:需字節級操作時顯式轉型(char*)p,代碼可移植、意圖明確。
func a return = 3 func b retunr = 5300 -------------------------
p++在GCC下無輸出(無錯誤),VC6.0編譯失敗。
void f(void)char*做字節操作這些細節區分了「能跑」與「標準、可移植、安全」的代碼。