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

เกิดอะไรขึ้นเมื่อเรียกฟังก์ชันก่อน Declaration ใน C?

หากเรียกฟังก์ชันก่อน Declaration โดยไม่มี Prototype คอมไพเลอร์สมมติ Return Type เป็น int (Implicit int)

  • ถ้า Return จริงเป็น int -> ทำงานได้ (อาจมี Warning)
  • ถ้า Return เป็นชนิดอื่น -> Error: Conflicting Types

ตัวอย่าง Error

main() { printf("%d", function()); }
char function() { return 'T'; } // Error: conflicting types

ตัวอย่าง OK

main() { printf("%d", function()); }
int function() { return 86; } // OK