关于C中函数声明与定义

来源:本站
导读:目前正在解读《关于C中函数声明与定义》的相关信息,《关于C中函数声明与定义》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于C中函数声明与定义》的详细说明。
简介:总结如下:1.一般情况下,函数在调用子函数时,子函数必须先声明,要不会报错。(一般都将函数的声明放在一下头文件里)2.如若子函数为返回值是int时,可不用声明,因为编译器会为子函数默认一个声明,返回值为int类型的,所以最开始的那个例子才不会报错。3.static修饰的函数作用域为从声明/定义处到源文件结尾处为止。

首先看下面main.c,test()和add()都未声明,但编译时不会报错

#include     void main()    {        printf("%dn",test());    }        int test()    {        return add(1,2);    }        int add(int x,int y)    {         return x+y;    }  

运行输出结果为:3

接着修改程序如下:

#include     void main()    {        printf("%dn",test());    }       static int test()    {        return add(1,2);    }        static int add(int x,int y)    {        return x+y;    }  

编译时报错,提示test()和add()未声明。

为什么会这个样子呢,于是我又试着修改了一下程序:

#include     void main()    {        test();       void test()    {        //return add(1,2);      add(1,2);    }        void add(int x,int y)    {        //return x+y;      x+y;    }  

这次报错了,注意了,和第一个例子相比只是将函数返回值不同而己!

接着先给出函数声明:

#include     void test();  void add(int x,int y);      void main()    {        test();    }        void test()    {        //return add(1,2);      add(1,2);    }        void add(int x,int y)    {        //return x+y;      x+y;    }  

编译顺利通过。

总结如下:

1.一般情况下,函数在调用子函数时,子函数必须先声明,要不会报错。(一般都将函数的声明放在一下头文件里)

2.如若子函数为返回值是int时,可不用声明,因为编译器会为子函数默认一个声明,返回值为int类型的,所以最开始的那个例子才不会报错。

3.static修饰的函数作用域为从声明/定义处到源文件结尾处为止。

提醒:《关于C中函数声明与定义》最后刷新时间 2024-03-14 00:59:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于C中函数声明与定义》该内容的真实性请自行鉴别。