Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khác biệt giữa int main() và int main(void) trong C

int main(): Hàm trả về int. Trong C, nếu không khai báo tham số, hàm có thể nhận bất kỳ số lượng đối số nào.

int main(void): Hàm trả về int và không nhận bất kỳ tham số nào. Đây là cách khai báo chuẩn kỹ thuật hơn.

Ví dụ minh họa sự khác biệt

// int main() - có thể gọi main(10) không lỗi
int main() {
    static int a = 10;
    if (a--) { printf("a=%d\n", a); main(10); }
    return 0;
}
// Kết quả: in 9 xuống 0, không lỗi
// int main(void) - gọi main(10) sẽ lỗi compile
int main(void) {
    static int a = 10;
    if (a--) { printf("a=%d\n", a); main(10); } // Error
    return 0;
}
// Phải sửa thành main() thì mới chạy được

Kết luận: Nên dùng int main(void) để rõ ràng hàm main không nhận tham số.