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

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


ถ้าเราไม่ใช้ต้นแบบฟังก์ชันบางตัว และเนื้อความของฟังก์ชันจะถูกประกาศในบางส่วนซึ่งปรากฏอยู่หลังคำสั่งเรียกใช้ของฟังก์ชันนั้น ในกรณีเช่นนี้ คอมไพเลอร์คิดว่าประเภทการส่งคืนเริ่มต้นเป็นจำนวนเต็ม แต่ถ้าฟังก์ชันส่งคืนค่าประเภทอื่น จะส่งคืนข้อผิดพลาด หากประเภทส่งคืนเป็นจำนวนเต็มด้วย ก็จะใช้ได้ดี บางครั้งอาจสร้างคำเตือน

โค้ดตัวอย่าง

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function);
}
char function() {
   return 'T'; //return T as character
}

ผลลัพธ์

[Error] conflicting types for 'function'
[Note] previous implicit declaration of 'function' was here

ตอนนี้หากประเภทส่งคืนเป็นจำนวนเต็มก็ใช้ได้

โค้ดตัวอย่าง

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function());
}
int function() {
   return 86; //return an integer value
}

ผลลัพธ์

The returned value: 86