函数
定义
**函数:**函数是C语言里面的功能单位,实现一个功能可以封装一个函数来实现。
返回值类型 函数名(形参 // 可以没有){
函数体
return 返回的数据 // 可以没有
}
声明
对已经定义的函数进行说明,函数的声明可以声明多次。
为什么要声明?
有些情况,如果不对函数进行声明,编译器在编译的时候,则不认识这个函数。
因为编译器在编译c程序的时候是从上往下进行编译的。
什么时候需要声明?
- 主调函数和被调函数在同一个.c文件的时候;
1) 主调函数在下,被调函数在上,这种情况不需要声明。
2) 主调函数在上,被调函数在下,这种情况需要声明。- 直接声明法
将被调用函数的第一行拷贝过去,后面加分号;#include <stdio.h> #include <stdlib.h> // 声明函数 int add(int a, int b); int main() { printf("10 + 5 = %d", (add(10, 5))); system("pause"); return 0; } int add(int a, int b) { return a + b; }
- 间接声明法
将被调用的函数的声明放在头文件中,前面加extern ,.c文件包含头文件即可。hello.h extern int add(int a,int b); hello.c #include <stdio.h> #include <stdlib.h> #include "hello.h" int main() { printf("10 + 5 = %d", (add(10, 5))); system("pause"); return 0; } int add(int a, int b) { return a + b; }
- 直接声明法
- 主调函数和被调函数不在同一个.c文件的时候;
- 直接声明法
将被调用函数的第一行拷贝过去,后面加分号,前面加extern ;world.c #include <stdio.h> void printName(){ printf("world"); } hello.c #include <stdio.h> #include <stdlib.h> #include "hello.h" // 直接声明 extern void printName(); int main() { // 调用外部声明的方法 printName(); system("pause"); return 0; }
- 间接声明法
将被调用的函数的声明放在头文件中,前面加extern ,.c文件包含头文件即可。hello.c #include <stdio.h> #include <stdlib.h> #include "world.h" int main() { // 调用外部声明的方法 printName(); system("pause"); return 0; } world.h extern void printName(); world.c #include <stdio.h> void printName(){ printf("world"); }
- 直接声明法