Computer >> Máy Tính >  >> Lập trình >> lập trình C

Sự khác biệt giữa “int main ()” và “int main (void)” trong C / C ++?

Đôi khi chúng ta thấy rằng có hai kiểu định nghĩa hàm chính. Int main () và int main (void). Vậy có sự khác biệt nào không?

Trong C ++, không có sự khác biệt. Trong C cũng đúng cả hai. Nhưng cái thứ hai tốt hơn về mặt kỹ thuật. Nó chỉ định rằng hàm không nhận bất kỳ đối số nào. Trong C nếu một số hàm không được chỉ định với các đối số, thì nó có thể được gọi bằng cách sử dụng không có đối số hoặc bất kỳ số lượng đối số nào. Vui lòng kiểm tra hai mã này. (Hãy nhớ những điều này bằng C không phải C ++)

Ví dụ

#include<stdio.h>
void my_function() {
   //some task
}
main(void) {
   my_function(10, "Hello", "World");
}

Đầu ra

This program will be compiled successfully

Ví dụ

#include<stdio.h>
void my_function(void) {
   //some task
}
main(void) {
   my_function(10, "Hello", "World");
}

Đầu ra

[Error] too many arguments to function 'my_function'

Trong C ++, cả hai chương trình sẽ bị lỗi. Vì vậy, từ đó chúng ta có thể hiểu rằng int main () có thể được gọi với bất kỳ số lượng đối số nào trong C. Nhưng int main (void) sẽ không cho phép bất kỳ đối số nào.