gpt4 book ai didi

c - C中的函数顺序

转载 作者:太空狗 更新时间:2023-10-29 16:05:48 25 4
gpt4 key购买 nike

为什么我的代码有效?我在声明它之前调用函数 generateNumber,并且我没有在文件的开头设置原型(prototype),所以通常它不应该工作,不是吗?

这是我的代码:

#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;
}

提前致谢!

最佳答案

令人惊讶的是,这是它实际上应该与旧编译器一起工作的罕见情况之一 - 特别是与 C99 之前的编译器一起工作。不过,您不应该这样做:隐式 int 已在 C99 中删除,因为它会使代码变得脆弱。

当一个函数缺少原型(prototype)时,旧的 C 编译器过去常常假设它的所有参数都匹配您传递的表达式的类型,并且它们的返回类型是 int。您的函数恰好符合以下描述:您传递了两个整数,并将返回值视为 int

关于c - C中的函数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41621637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com