傳統格式(K&R 風格):形參列表僅寫名稱,類型另行聲明。
現代格式(ANSI C):類型 函數名(類型 形參, ...),將類型合併在參數列表,編譯器可做嚴格檢查,推薦使用。
/* 傳統 */ int max(a, b) int a, b; { ... }
/* 現代 */ int max(int a, int b) { if (a > b) return a; else return b; }
z = max(x, y); 返回值參與運算。printf("%d", a); 以語句形式調用。printf("%d", max(x, y)); 返回值作為另一函數實參。C 標準未規定實參求值順序(左→右或右→左),編譯器自行決定。Turbo C 採右→左。例:printf("%d %d %d %d", ++i, --i, i++, i--); 輸出順序固定但值依求值序而異,寫程式時避免在同一實參表中對同一變量多次副作用操作。
void s(int n) { for (i = n-1; i >= 1; i--) n += i; printf("n=%d\n", n); }
main() { int n; scanf("%d", &n); s(n); printf("n=%d\n", n); }
輸入 100,函數內 n 變 5050,但主函數 n 仍為 100,證明值傳遞單向性。