Lập trình C: void main() hay int main()?

Chào mọi người,

Trong khi học về lập trình C thì em thấy một số tài liệu sử dụng cách viết void main() một số khác sử dụng int main(). Theo ý kiến cá nhân của mọi người thì nên sử dụng cách nào và vì sao?

Được hỏi 1 năm trước
Bình chọn bởi: Hoàng Giang, Huyền Cool, Khoi Tran, Huyền Cano, Hanh Kute, Lê Anh, Khánh Duy, Nguyen Lam, Lê Hạnh, Thuy Linh, Diệu Yến, Đồng Tuyết, Duan Le, Tram Anh, Hoàng Thị Diệu, Hana Pham, Bảo Davis, Quang Nguyen, Tân Lê, Minh Tran, Ánh Thủy, Minh Phạm, Giang River, Hữu Hạnh, Huy Pro, Quỳnh Anh, Trung Võ, Vũ Văn Tuấn, Đình Anh, Nguyen Thuy Trang, Bao Ngoc, Nguyễn Đạt, Roy Trịnh, Duc Otore, Đinh Quang Huy, Bơ Heoboo, Trần Diễm, Nguyễn Duy Tuấn, Hoàng Tùng, Duy Võ

Cả hai cách viết void mainmain đều không có trong chuẩn của C. Cách viết đúng là

int main(main)

Hoặc :

int main(int argc, char **argv)

Mục đích của việc trả về giá trị là kiểu số đó là để trả về mã status của chương trình.

Trả lời 4 ngày trước

Phiên bản ANSI C 89 quy định các cách viết sau khi khai báo hàm main() trong chương trình:

int main()
int main(void)
int main(int argc, char* argv[])

Giải thích ý nghĩa của từng cách viết:

Sử Dụng int main()

Với cách viết này hàm main() sẽ được gọi với một số lượng đối số truyền vào là tùy ý và hàm sẽ trả về giá trị là một số nguyên integer. Giá trị này chính là trạng thái của chương trình.

Sử Dụng int main(void)

Với cách viết này hàm main() sẽ được gọi mà không có đối số truyền vào và hàm sẽ trả về giá trị là một số nguyên integer. Giá trị này chính là trạng thái của chương trình.

Sử Dụng int main(int argc, char* argv[])

Với cách viết này hàm main() sẽ được gọi với một số lượng đối số truyền vào là argc (argc hiển nhiên sẽ nhận kiểu dữ liệu là int) và argv[] chứa các đối số truyền vào (trong trường hợp này có kiểu dữ liệu là char). Và hàm sẽ trả về giá trị là một số nguyên integer. Giá trị này chính là trạng thái của chương trình.

Trường hợp nếu không có đối số truyền vào hàm main() chúng ta đều có thể sử dụng int main() hoặc int main(void). Tuy nhiên, việc chọn sử dụng int main(void) sẽ giúp cải thiện được tốc độ của chương trình.

Về Cách Viết void main()

Đây là cách viết không đúng chuẩn và trong một số trường hợp khi compile source code sẽ trả về lỗi.

Trả lời 4 ngày trước

Cách nào cũng được. Nếu int main thì phải return 1 cái gì đó có kiểu int thôi. Void thì không cần return hoặc return không gì cả.

int main()
{
    // bắt buộc phải return 1 giá trị int
    return 123456;
}

Còn void: Không return hoặc return ..không gì hết

void main()
{
    return;
}
Trả lời 11 tháng trước

Thêm Trả Lời