c语言函数的声明,c语言函数的声明

1,c语言函数的声明楼主可以这样想 , C语言中,无论是常量,变量,函数,只有先定义才能使用的 。在函数定义时,大脑要往一般的常量,变量定义的方向,切忌先不要想函数的别的 。定义好后 , 把函数的定义先放一边,不管它 。接着是函数声明,大家都知道 , C语言是有一个主函数main()和0或n个普通函数组成的 。由于当代码越长,用到的函数就越多,为了减少函数的混淆,所以要有个函数名,就像老师点名一样,声明一个函数,就如点一个学生的名字 。总之,函数定义是系统要求的 , 不定义就错误,而函数声明实际上不定义也行,但为了方便和减少错误,人为规定要声明 。b
2,关于c语言的函数声明函数声明它为编译器提供了有用的信息,编译器在翻译代码的过程中 , 只有见到函数原型(这里即可以是声明也可以是定义)之后才知道这个函数的名字、参数类型和返回值,这样碰到函数调用时才知道怎么生成相应的指令,所以函数原型必须出现在函数调用之前,这也是遵循“先声明后使用”的原则 。注意上面说的函数原型是包括函数声明和定义两种形式的 。另外还有一种特殊情况 , 就是隐式声明:隐式声明的函数返回值类型都是int;如下#include<stdio.h>main() printf("%d\n",jiec(5));}int jiec(int n) int y=1;int i; for(i=1;i<=n;i++) y=y*i; return(y);}这个程序也是可以运行的 。主要返回值为int.
3,C语言 函数 定义 声明struct student stu ; 定义了一个student类型的结构体stu 。void add(int,int);这样声明可以不加参数名称,只要有参数类型就可以了 。如果有实现(就是有大括号)就要加名称 , 大括号中使用嘛 。struct student stu ;这里是声明了一个结构体类型的变量void print ( struct student ) ;是函数声明,声明时可以不用具体的变量,只需要类型就行了 比如 int add(int ,int);声明int add(int a,int b)return a+b;} 如果函数是放在前面 就不用函数的声明 了之前在主函数里已经定义了结构体变量student类型 。struct student stu ;//声明了一个student类型的变量stu 。而函数声明的时候参数名可以不写只写类型也没有关系但是定义的时候必须写明参数名等信息那里没错 , 声明的时候可以不指明参数的,可以只写上类型【c语言函数的声明,c语言函数的声明】
4,关于c语言的函数声明可以的,如int fact(int j,int sum)if(j==0)sum=1;elsefact(j-1,j * sum);}递归时候,用return将值返回函数,这样程序的易读性比较强,你说的方法也是可以的,建议使用return的方法函数声明写在程序的main之前 也就是我先告诉main 我有这样一个函数,你可以调用 但是函数的具体实现 在main之后 例如: void f(int i);这个就叫函数声明 void main() { 内容 。。。} void f(int i) { 内容 。。。}看的专业资料太旧了 , 换,在c语言中声明函数时是 类型 +函数名(参数列表) 。sum是局部变量,只在函数体内有效 。j是带入函数的一个变量 。修改如下:int fact(int j)int sum;if(j==0)sum=1;elsesum=j*fact(j-1);return sum;}应该是 类型 +函数名(类型+变量名)int fact(int j)//这个表示返回的函数类型是int,int j是形参...int sum;if(j==0)sum=1;elsesum=j*fact(j-1);return sum;}可以在函数体中定义新的变量...5,C语言函数声明的问题我也来 说几句 。。标准编译器 对函数的调用 都要先申明 才能 调用 (生产的时候就这样设定的) 。。我推荐试用大点的vs2005,vc2000.小点的Dev-cpp ,Turboc 3.0 (2.0 不支持鼠标有点 麻烦)这里 就涉及:申明和定义之间的区别 。申明-- 不开辟内存 , 仅仅告诉编译器,申明的部分存在,要预留一点空间 。定义-- 开辟内存 。申明 属于 预编译范畴的 。最好写在头文件中(楼主 , 自定义头文件学了没有?。浚ㄉ昝鞫夹丛谕肺募校皇且恢趾玫谋喑滔肮撸?因为 在编译的时候,编译器先处理一些特殊数据(宏定义 , 函数的申明,变量的申明),在这个过程中,编译器 通过申明 可以预测整个定义需要的内存大?。?并且 把这些大小预留起来,留给定义的时候使用(因为虽然定义,但是在 main函数里面没有调用,一样的不分配内存) 。如果不事先申明,直接定义,有可能会造成系统崩溃,出现内存不足 , 不能分配 。然而现在内存都是1G左右了,所以一般空间都足够,所以你也可以不申明直接定义函数 。但是一旦内存紧张,就会出错,而且程序简洁性就很低 。(不看到定义,还不知道原来还定义了这么一个函数?。。。┗褂?变量也一样,标准的都是 先申明在定义 。extern int i; //申明int i=0; //定义并初始化为0int i; //定义. 。。。。。。。。。。。。。。。。。所以 从现在其要养成良好的编程习惯 先申明,在定义 。申明最好都放在 一块,并且都在头文件中(为了便于管理) 。可以直接定义 但是必须在调用的前面定义 但是声明很明显说明这里有一个函数 下面可能需要调用第一,如果你没有看错就是你的书错了,只有int和char类型的函数不必声明 第二,C中可以不声明函数的条件是3个 1就是上面我说的 2.是被调函数定义在主调函数之前,可不必声明 3函数的外部已声明过了,个个主调函数中不必声明 对于第二点,很好解释,因为声明的目的在于告诉编译器有这么个自定义函数,返回类型是什么,如果被调函数定义在主调函数之前,那么编译器自然就知道了这个函数 你把f2和f1换下位置并去掉声明就明白了 再说一句,写函数声明是编写程序的良好习惯 请注意这是C程序,C官方声明标准编译器是Turboc 2 。0 不要把C++的概念强加给C 我不是说VC++6不好,而是说既然是在学C,就要用标准的C编译器,只有标准C编译器才能正确的学习C的基础理论C语言规定,所有的函数被调用之前都必须声明.声明格式为 -- 存储类型 数据类型 函数名(参数)定义一个变量是可以直接定义使用的,但也必须在使用之前定义啊.所以,还有另外一种形式可以不用声明函数,那就是把函数的定义部分放在主函数的上面.这是这是因为C程序都是从main()函数开始执行的,而且是从上往下执行.比如#include<stdio.h>float add(float x,float y) /*定义add函数*/ float z; z=x+y; return z; } void main() float a,b,c; scanf ("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); }等C官方声明标准编译器是Turboc 2 。0?????这个好像有点假吧,如果标准是turboc 2.0,我感觉靠c语言吃饭的人都能改吃屎了 。现在的标准是C99,tc还是89年的产物呢,比较新的编译器应该是gcc 4.x , 无论是你真正的学c吃饭,还是过2级 , 都不会与现在的标准c冲突的 。看你的程序可以看出,你看的书够老的了,把函数声明放在main()函数里 , 很少有这样用的,函数不用声明的用法只有一种,就是在主函数前面定义 。正常在程序设计中,函数声明是个好习惯 。在以后的学习中你会体会到的 。c语言是这样规定的,你记住了就行了 。

    推荐阅读