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

ความแตกต่างระหว่าง int main() และ int main(void) ใน C/C++

ใน C++ ทั้ง int main() และ int main(void) ไม่มีความแตกต่าง ใน C ทั้งคู่ถูกต้อง แต่ int main(void) ถูกต้องทางเทคนิคมากกว่า เพราะระบุชัดเจนว่าไม่รับอาร์กิวเมนต์

ใน C หากฟังก์ชันไม่ระบุพารามิเตอร์ สามารถเรียกใช้ได้ทั้งแบบไม่มีอาร์กิวเมนต์และแบบมีอาร์กิวเมนต์กี่ตัวก็ได้ แต่ถ้าระบุ void จะห้ามส่งอาร์กิวเมนต์เข้ามา

ตัวอย่าง: ไม่ระบุ void (C)

#include <stdio.h>

void my_function() {
    // some task
}

int main(void) {
    my_function(10, "Hello", "World"); // คอมไพล์ผ่านได้ใน C
    return 0;
}

ตัวอย่าง: ระบุ void (C)

#include <stdio.h>

void my_function(void) {
    // some task
}

int main(void) {
    my_function(10, "Hello", "World"); // Error: too many arguments
    return 0;
}

ใน C++ ทั้งสองกรณีจะล้มเหลว (compile error) เพราะ C++ บังคับให้ตรวจสอบพารามิเตอร์เข้มงวด