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

C/C++ Function Call Puzzle: ความแตกต่างระหว่าง C และ C++

ใน C: ฟังก์ชันที่ประกาศ `void func()` รับ argument ได้กี่ตัวก็ได้ (implicit int, variadic)

ใน C++: `void func()` หมายถึงไม่มีพารามิเตอร์เลย (เทียบเท่า `void func(void)`)

ตัวอย่าง

void method() { printf("called\n"); }
int main() {
    method();      // OK ในทั้ง C และ C++
    method(2);     // C: OK, C++: Error "too many arguments"
}

เหตุผล

  • C: `func()` = unspecified parameters (K&R style)
  • C++: `func()` = no parameters (strict typing)
  • ใน C ให้ใช้ `void func(void)` เพื่อระบุชัดเจนว่าไม่มีพารามิเตอร์