return 表達式;結束函數執行,將表達式值作為函數返回值傳給調用者。表達式類型**必須與函數聲明的返回類型兼容**。
int find(string x) { return 42; } // 返回 int
string getName(int id) { return "Alice"; } // 返回 string
double calc() { return 3.14 * r * r; } // 返回 double
return;(僅用於 void 函數)提前結束 void 函數執行,不帶任何值。等效於執行到函數右大括號 }。
void printPositive(int x) {
if (x <= 0) return; // 提前退出
printf("%d", x);
}
| 返回值 | 常見含義 | 適用場景 |
|---|---|---|
0 | 成功 / 無錯誤 / 假(布爾上下文) | main()、pthread_create、POSIX 系統調用 |
1 | 一般錯誤 / 真 | 自定義錯誤碼、邏輯真值 |
-1 | 失敗 / 出錯(常配合 errno) | 文件操作、Socket、內存分配等系統調用 |
| 其他正整數 | 具體錯誤代碼 | 業務邏輯自定義錯誤類型 |
int main():必須返回 int。return 0; 或隱式結束(C99+)表示成功。void main():非標準(C 標準不允許),部分編譯器兼容但不可移植。return; 在 int main() 中非法(缺返回值)。bool tryDivide(int a, int b, int *result) {
if (b == 0) return false; // 守衛條件
*result = a / b;
return true;
}
Point makePoint(int x, int y) {
Point p = {x, y};
return p; // 值返回,安全
}
int* badExample() {
int local = 10;
return &local; // 錯誤:返回局部變量地址
}
void 函數只用 return; 或省略。main 永遠用 int main(void) 或 int main(int argc, char *argv[]) 並顯式 return 0;。malloc、fopen)。掌握 return 的類型匹配、控制流作用與約定俗成的錯誤碼體系,是編寫健壯 C 代碼的基石。