当前位置:  开发笔记 > 编程语言 > 正文

功能在C中的顺序

如何解决《功能在C中的顺序》经验,为你挑选了1个好方法。

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

这是我的代码:

#include 
#include 
#include 


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

谢谢提前!



1> dasblinkenli..:

令人惊讶的是,这是实际应该与旧编译器一起使用的极少数情况之一- 特别是在C99之前的编译器.不过,你不应该这样做:int在C99中删除了隐式,因为它使代码变得脆弱.

当一个函数缺少原型时,旧的C编译器常常假设它的所有参数都与你传递的表达式类型相匹配,并且它们的返回类型是int.您的函数恰好符合此描述:您传递两个整数,并将返回值视为int.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有