Tại sao mã sau có đầu ra chính xác? int GGT không có câu lệnh trả về, nhưng mã không hoạt động? Không có biến toàn cục nào được đặt.Chức năng trả về giá trị không có lệnh return
#include <stdio.h>
#include <stdlib.h>
int GGT(int, int);
void main() {
int x1, x2;
printf("Bitte geben Sie zwei Zahlen ein: \n");
scanf("%d", &x1);
scanf("%d", &x2);
printf("GGT ist: %d\n", GGT(x1, x2));
system("Pause");
}
int GGT(int x1, int x2) {
while(x1 != x2) {
if(x1 > x2) {
/*return*/ x1 = x1 - x2;
}
else {
/*return*/ x2 = x2 - x1;
}
}
}
Bật cấp cảnh báo ngay trên trình biên dịch của bạn, và bạn sẽ nhận được một tin nhắn ... –
Tôi nhận được một thông báo cảnh báo, nhưng tôi là interessted tại sao nó hoạt động, trình biên dịch có đặt giá trị trả về không, không có ai? –
trùng lặp có thể có của [hàm C được xác định là int nhưng không có câu lệnh trả về trong phần nội dung vẫn biên dịch] (http://stackoverflow.com/questions/4260048/c-function-defined-as-int-but-having-no- return-statement-in-the-body-still-compi) –