在我的代码中,为什么缺少一个函数声明对于一个函数来说不是问题,而是为另一个函数抛出警告?

前端之家收集整理的这篇文章主要介绍了在我的代码中,为什么缺少一个函数声明对于一个函数来说不是问题,而是为另一个函数抛出警告?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在下面的程序中,我使用了两个函数prd()和display().我在main()中调用之前没有声明它们都在main()之前,并且我在main()之后定义了两个函数.然而,prd( )在main()内部顺利工作,调用display()显示警告“’display’的上一个隐式声明在这里”.有什么不同display()有警告,但没有其他功能prd() ?我已经宣布它们都没有开始.由于调用了一个警告,但是其他一个工作正常.
#include<stdio.h>

    int main()
    {
        int x=8,y=11;

        printf("The product of %d & %d is %d",x,y,prd(x,y));

        display();

        return 0;
    }

    int prd(int x,int y)
    {
        return x*y;
    }

    void display()
    {
        printf("\n Good Morning");
    }

PS:如果你能回答这个次要问题,我真的很感激 – “C中是否根本没有必要的函数声明,只要它有定义吗?”.我习惯在主要之前声明程序的所有功能()函数,然后在main()函数之后定义它们.我错了吗?

解决方法

当您使用未声明的display()时,编译器会隐式声明它就像返回int一样.

当编译器最终看到display()的定义时,它会看到返回类型为void,但它已经假设它是int,因此定义和隐式声明不同,因此错误/警告.

猜你在找的C&C++相关文章