C语言中的函数原型和函数定义有何区别?
时间: 2024-09-09 14:13:53 浏览: 110
函数原型的一般形式为:-C语言函数汇编
在C语言中,函数原型(Function Declaration)和函数定义(Function Definition)是两个不同的概念:
**函数原型**:
- 它是一个函数的简略形式声明,告诉编译器函数的存在、返回类型和参数类型,但不包含函数的具体实现。
- 一般放在函数调用前,目的是让编译器知道函数的签名以便进行类型检查和内存分配。
- 函数原型通常以`extern`关键字开头,如果没有,则默认函数在当前源文件中定义。示例:
```c
int add(int a, int b); // 声明函数add,接受两个整数并返回一个整数
```
**函数定义**:
- 这是实际的函数实现部分,包含了详细的函数体、参数处理和返回值的计算。
- 它只能在一个位置出现,即函数声明之后,在整个项目的其他地方调用该函数时,编译器就能找到对应的实现。
- 示例:
```c
int add(int a, int b) {
return a + b; // 这里给出了add函数的详细实现
}
```
简单来说,函数原型是在编译期间使用的,而函数定义是在链接阶段使用的。缺少函数定义时,编译器允许使用函数原型,但在链接时必须要有完整的定义才能完成程序的构建。
阅读全文