Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง "int main ()" และ "int main (เป็นโมฆะ)" ใน C / C ++?


บางครั้งเราจะเห็นว่าคำจำกัดความของฟังก์ชันหลักมีสองประเภท int main() และ int main(void) แล้วมีความแตกต่างหรือไม่?

ใน C ++ ไม่มีความแตกต่าง ใน C ก็ถูกต้องทั้งคู่ แต่อันที่สองดีกว่าในทางเทคนิค ระบุว่าฟังก์ชันไม่มีอาร์กิวเมนต์ใดๆ ใน C หากฟังก์ชันบางอย่างไม่ได้ระบุด้วยอาร์กิวเมนต์ ก็สามารถเรียกฟังก์ชันนั้นได้โดยไม่ต้องใช้อาร์กิวเมนต์ หรืออาร์กิวเมนต์จำนวนเท่าใดก็ได้ กรุณาตรวจสอบรหัสทั้งสองนี้ (จำไว้ว่าสิ่งเหล่านี้อยู่ใน C ไม่ใช่ C++)

ตัวอย่าง

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

ผลลัพธ์

This program will be compiled successfully

ตัวอย่าง

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

ผลลัพธ์

[Error] too many arguments to function 'my_function'

ใน C++ โปรแกรมทั้งสองจะล้มเหลว ดังนั้นจากนี้ เราจึงเข้าใจได้ว่า int main() สามารถเรียกได้ด้วยอาร์กิวเมนต์จำนวนเท่าใดก็ได้ใน C แต่ int main(void) จะไม่อนุญาตให้มีการโต้แย้งใดๆ