int หลัก แสดงว่าฟังก์ชันส่งคืนจำนวนเต็มบางจำนวนแม้กระทั่ง '0' เมื่อสิ้นสุดการทำงานของโปรแกรม '0' หมายถึงการดำเนินการที่ประสบความสำเร็จของโปรแกรม
ไวยากรณ์ของ int main มีดังต่อไปนี้ −
int main(){ --- --- return 0; }
int main(เป็นโมฆะ) แสดงว่าฟังก์ชันรับอาร์กิวเมนต์ NO สมมติว่าถ้าเราไม่ใส่ โมฆะไว้ในวงเล็บ ฟังก์ชันจะรับอาร์กิวเมนต์จำนวนเท่าใดก็ได้
ไวยากรณ์ของ int main(void) มีดังต่อไปนี้ -
int main(void){ --- --- return 0; }
อันที่จริง ทั้งสองดูเหมือนจะเหมือนกัน แต่ int main(void) นั้นดีกว่าในทางเทคนิค เพราะมันระบุไว้อย่างชัดเจนว่า main สามารถเรียกได้โดยไม่มีพารามิเตอร์ใด ๆ เท่านั้น
โดยทั่วไปในภาษา C หากลายเซ็นของฟังก์ชันไม่ได้ระบุอาร์กิวเมนต์ใด ๆ นั่นคือฟังก์ชันนั้นสามารถเรียกใช้ด้วยพารามิเตอร์จำนวนเท่าใดก็ได้หรือไม่มีพารามิเตอร์ใด ๆ
ลองใช้ตรรกะเดียวกันนี้ในการติดตั้งโค้ดสำหรับฟังก์ชันทั้งสอง ข้อแตกต่างเพียงอย่างเดียวคือไวยากรณ์ของฟังก์ชันเหล่านี้
ตัวอย่างที่ 1
รับด้านล่างเป็นโปรแกรม C สำหรับ int main() ฟังก์ชันโดยไม่มีอาร์กิวเมนต์ -
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0
ตัวอย่างที่ 2
รับด้านล่างเป็นโปรแกรมเดียวกัน แต่มีฟังก์ชัน int main(void) -
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
error
หากเราเขียนโค้ดเดียวกันสำหรับ int main() และ int main(void) เราจะได้รับข้อผิดพลาด สิ่งนี้เกิดขึ้นเนื่องจากเป็นโมฆะแสดงว่าฟังก์ชันไม่มีพารามิเตอร์
ดังนั้น พยายามลบอาร์กิวเมนต์ 10 ใน main ในตัวอย่างด้านบนและคอมไพล์ ดังนั้นหลังจากแก้ไขโค้ดข้างต้นจะเป็นดังนี้ −
ตัวอย่าง
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(); } return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0