30/09/2018, 22:13
Lỗi dùng hàm void main()
Các anh chị nghiên cứu hộ chứ sao cái DEV-C+ của em không dùng được hàm void main(), phải dùng int main(). Đấy là hiển nhiên hay là lỗi chương trình vậy? Nếu muốn dùng thì khai báo thư viện gì hả các bác ??
Bài liên quan
nếu dùng theo chuẩn phải int main, mình ko dùng dev c nhưng mình nghĩ là chuẩn vậy rồi. Tại sao bạn lại muốn dùng void main ?
Mình là dân không chuyên, mới tập lập trình thôi, chả hiểu lắm nhưng tại anh Đạt dạy ảnh dùng void main() nên mình cũng dùng. Bạn có tài liệu nào dạy dân không chuyên không, kiểu tài liệu ít thuật ngữ với chi tiết ấy, có send mình nhé. Thanks. Email: anhphuongdh9a@gmail.com
void main()
là không theo chuẩn, hình như là do compiler của Microsoft khá “phóng khoáng” nên cho dùngvoid main()
thôi . Còn lại đều “warning” hoặc “error” thôi.PS: Mà mình nhớ là mấy bài sau của anh Đạt đều dùng
int main()
hết mà taĐúng là như vậy.
void main
không chuẩn.nên dùng
int main
nên dùng
int main
,return 0
và có một dòng trắng ở cuối đoạn code để theo chuẩndiễn đàn xoá dòng trắng đó rồi
Em chào anh ! Không biết anh có tài liệu cho người mới không ạ ? Anh làm ơn gửi cho em với, tài liệu cho dân không chuyên ấy ạ. Em mới tập được tuần thôi ạ, mấy cái class, constructor chả hiểu mô tê gì hoang mang quá @@. Anh làm phước gửi em ít giáo trình hay tài liệu gì đó dạy về C++ dễ hiểu cho em với. Em sẽ nhớ ơn anh suots cuộc đời này. Có khả năng anh là một trong số nhwgx người cứu rỗi linh hồn em đấy (nói quá :))))) )
Đạt và các thành viên diễn đàn đang tạo ra khóa học C++ từ cơ bản đến nâng cao bạn có thể tham khảo theo link
http://daynhauhoc.com/t/gioi-thieu-ve-khoa-hoc-c-danh-cho-nguoi-chua-biet-hoac-biet-mot-it-ve-lap-trinh/24016/29
Tôi không biết lý do cụ thể, nhưng tôi đoán lý do main() phải trả về int vì ngôn ngữ C được tạo ra để viết các chương trình chạy trên hệ điều hành UNIX. Trên UNIX, một luật bất thành văn (hoặc có thể được quy định ở đâu đó mà tôi chưa biết) là các chương trình sẽ trả về 0 nếu không xảy ra lỗi, còn lại thì phải trả về một con số khác 0, được dùng như mã lỗi. Nếu bạn dùng Bash shell sẽ thấy shell này thậm chí có sẵn một biến ($?) chứa kết quả trả về của lệnh trước đó.
Cũng có thành văn bác ạ. Nói chung
0
làsuccess
vì đãsuccess
thì không cần suy xét thêm, cònerror
thì cần phải biết nguyên nhân nên các số khác0
sẽ được dùng làm mã lỗi.Khi lưu tên file có định dạng “.c” thì bạn có thể dùng 2 loại là int main() và void main()
còn khi lưu tên có định dạng “.cpp” thì bạn chỉ được sử dụng int main() (vì C++ đã bỏ void main())
Đó là đối với trình biên dịch như mingW, vv, v, . Còn VS thì ngoại lệ.
cho em hỏi ngu cái , sao void main() lại return 0; ???
Mỗi khi chương trình kết thúc, đều phải thông báo cho OS biết là nó kết thúc như thế nào.
Giá trị return của hàm main() gọi là exit code, và Exit Code = 0 là chương trình kết thúc bình thường.
Turbo C++ cũng chấp nhận void main() bạn :))
Cái đó không hẳn là do trình biên dịch mà là do chuẩn C thôi bạn.
int main()
mới đúng,void main()
là sai. Chẳng qua người ta du di chomain()
thôi.Khoan đã, sao void có return được nhỉ? Hình như đâu có return được?
Bởi vậy mới nói
void main()
là sai.Các hàm
void
vẫnreturn
được, nhưng phải làreturn;
để kết thúc hàm ngay lập tức.Do void main() quá lỗi thời do trước kia sách hay in void main nhưng bây giờ nó hết rùi bạn có thể thử int main(void) nguồn: từ một trang web tiếng anh không quên tên trang
C chuẩn cũng chỉ chấp nhận 2 prototype cho main() mà thôi, và chúng đều return int
C++ không cần phải dùng
void
để thể hiện hàm không tham số nữa.