mình thấy trên mạng thường dùng int main() và return 0. còn các thầy trong trường mình thì lại thường dùng void main(). không biết nó khác nào chỗ nào mn nhỉ ??
Void main() và int main() khác nhau như thế nào?
void main
không thuộc về chuẩn ANSI C. int main
là chuẩn ANSI C.
Nếu compiler hỗ trợ void main
, Microsoft Visual Studio cl.exe compiler, thì mình có thể chạy được. Còn không thì nó sẽ báo lỗi.
Xem thêm: http://portal.daynhauhoc.com/series/c-bai-36-ham-main-again/
Nếu mình nhớ k lầm thì thực ra khi bạn dùng void main()
thì mặc địch nó cũng trả về 0, giá trị trả về này để thông báo là có lỗi khi chạy hay k.
0 là không có lỗi, khác 0 là có lỗi.
Nên 2 cách viết là giống nhau !
Chuẩn nhất là int Main(void)
Nhờ bạn dẫn chứng cho mọi người một tài liệu hoặc một trang web nào đó đề cập đến chuẩn nhất trong khai báo hàm main trong C++ với.
- Mình thấy tag là C nên mình xin trả lời theo chút hiểu biết hạn hẹp về ngôn ngữ C
- Chuẩn C99 khuyến khích sử dụng int main(void) và int main ( int argc, char *argv[] ) (cái nào cũng được)
3)Trong C++ , Main() là hàm ko có tham số, còn C thì là hàm không quan tâm tham số
điều gì xảy ra nếu bỏ thêm tham số vào hàm main trong c++ nhỉ
Thì nó là tham số khởi động chương trình thôi bạn ạ. Giả sử bạn có một tập tin C:\ahjhj.txt
, và mở bằng ứng dụng notepad.exe
, chỉ thị ngầm định đối với Windows là:
C:\Windows\System32\notepad.exe "C:\ahjhj.txt"
Nếu ứng dụng notepad được viết là int main(int argc, char* argv[])
thì trong trường hợp này, argc == 1
và argv[0] == "C:\ahjhj.txt"
Tham số thể hiện rõ nhất trong CLI, ví dụ Command Prompt. Chẳng hạn như khi bạn chạy lệnh ipconfig /all
thì "/all"
chính là tham số đầu tiên, ứng với argv[0]
, và chỉ có 1 tham số nên argc == 1
thanks a :)))))))))))))
Nó chỉ là cái chuẩn người ta quy định thế thì phải viết thế.