Computer >> Máy Tính >  >> Lập trình >> lập trình C

Điều gì xảy ra khi một hàm được gọi trước phần khai báo của nó trong C?

Nếu chúng ta không sử dụng một số nguyên mẫu hàm và phần thân hàm được khai báo trong một số phần có mặt sau câu lệnh gọi của hàm đó. Trong trường hợp như vậy, trình biên dịch nghĩ rằng kiểu trả về mặc định là một số nguyên. Nhưng nếu hàm trả về một số kiểu giá trị khác, nó sẽ trả về một lỗi. Nếu kiểu trả về cũng là một số nguyên thì nó sẽ hoạt động tốt, đôi khi điều này có thể tạo ra một số cảnh báo.

Mã mẫu

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

Đầu ra

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

Bây giờ nếu kiểu trả về là một số nguyên thì nó sẽ hoạt động.

Mã mẫu

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

Đầu ra

The returned value: 86