为什么我的代码有效?我在声明它之前调用函数generateNumber,并且我没有在文件的开头设置原型,所以通常它不应该工作,是吗?
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, const char * argv[]) {
int max = 100;
int min = 1;
int mysteryNumber = generateNumber(min, max);
int enteredNumber = min-1;
do{
printf("Enter a number !\n");
scanf("%d", &enteredNumber);
if (enteredNumber > mysteryNumber) {
printf("It's less !");
}else if(enteredNumber < mysteryNumber){
printf("It's more !");
}
}while (enteredNumber != mysteryNumber);
printf("Congratulations, the mystery number was %d \n", mysteryNumber);
return 0;
}
int generateNumber(int min, int max){
srand(time(NULL));
return (rand() % (max - min + 1)) + min;
}
Run Code Online (Sandbox Code Playgroud)
谢谢提前!
令人惊讶的是,这是实际应该与旧编译器一起使用的极少数情况之一- 特别是在C99之前的编译器.不过,你不应该这样做:int在C99中删除了隐式,因为它使代码变得脆弱.
当一个函数缺少原型时,旧的C编译器常常假设它的所有参数都与你传递的表达式类型相匹配,并且它们的返回类型是int.您的函数恰好符合此描述:您传递两个整数,并将返回值视为int.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |