Giá trị trả về của main() cho biết chương trình thoát như thế nào:
- 0 (hoặc
EXIT_SUCCESS): Thoát bình thường, thành công. - Khác 0 (thường 1, hoặc
EXIT_FAILURE): Thoát lỗi, thất bại.
Trong C++, main() có thể không viết return – trình biên dịch tự chèn return 0; cuối hàm (từ C++98). Trong C, bắt buộc có return (C99+).
Cú pháp
int main() {
// ...
return 0; // Hoặc EXIT_SUCCESS
}
Ví dụ
#include <stdio.h>
int main() {
int a = 10;
char b = 'S'; // ASCII 83
float c = 2.88f;
a = a + b; // Implicit conversion char->int
printf("Char -> int: %d\n", a); // 93
c = c + a; // Implicit conversion int->float
printf("Int -> float: %f\n", c); // 95.88
return 0; // Thoat thanh cong
}
Kết quả
Char -> int: 93
Int -> float: 95.879997
Best Practices
- Luôn trả về
0hoặcEXIT_SUCCESS(từ<stdlib.h>) cho thành công. - Trả về
EXIT_FAILURE(thường 1) cho lỗi. - Tránh trả về giá trị ngẫu nhiên (undefined behavior cho caller).
- C++: có thể bỏ
return 0;cuốimainnhưng viết rõ ràng hơn. - Không dùng
void main()– không chuẩn.