C语言程序由函数组成,函数是程序的基本组成单位。使用函数可以方便地实现程序模块化设计。函数是为了实现特定功能,按照C语言函数定义规则而编写的相对独立的程序段。函数对我们来说并不陌生,在前几节中使用的printf,scanf都是函数,它们在C语言的标准库中定义,这样的函数我们叫它库函数。
除库函数外,还有用户自定义函数,是用户根据自己需要而编写的函数,可以在需要的时候进行函数调用。
根据函数的参数,还可分为有参函数和无参函数,有参函数通常定义时在括号里要进行变量声明,如int fun(int a);无参函数定义时括号里不进行声明,如 int fun()
根据函数的有无返回值,可以分为有值函数和无值函数,有值函数如上述定义方式,int即为函数返回的值的类型,在函数中会有return语句返回值,如 return a;返回变量a的值,return 1;返回一。如果没有返回值,则定义方式变为void fun();
函数定义时应注意,main函数在同一个工程中的所有c源文件中只能有一个,且命名的函数最好不要出现如main1这样的命名方式。
#include <stdio.h>
void hm26() {
float a=1, b=1, c,j=-1,s=0;
for (int i = 0; i <= 20; i++) {
c = a;
a = a + b;
b = c;
j *= -1;
s = b / a * j+s;
}
printf("%f", s);
}
void main() {
hm26();
}
在这一例子中,hm26这一函数并不需要它的返回值,所以定义为void hm26();函数要先定义或者先声明才能进行调用,如果将hm26的定义在main下面,则会提示未定义hm26,我们也可以使用如下方式先声明再定义。
#include <stdio.h>
void hm26();
void main() {
}
void hm26() {
float a=1, b=1, c,j=-1,s=0;
for (int i = 0; i <= 20; i++) {
c = a;
a = a + b;
b = c;
j *= -1;
s = b / a * j+s;
}
printf("%f", s);
}
注意声名时函数的种类和参数必须保持一致,若出现了
int fun(int a, int b);
int fun(){
}
也会提示错误
函数调用时不加int等类型声明,否则会报错
int fun(int a, int b){
int s;
s=a+b;
return s;
}
void main(){
fun();//错误
int fun();//错误
fun(int a,intb);//错误
fun(1,2)//正确
}