C/C++函数声明与预处理:调用与原型声明
需积分: 32 136 浏览量
更新于2024-08-24
收藏 1.25MB PPT 举报
"对被调函数的声明-函数、预处理.ppt"
在C/C++编程中,函数是程序设计的基础,它们允许我们将复杂的问题分解为更小、更易管理的部分。函数可以被定义在一个文件中并被其他文件调用,实现了代码的复用和模块化。本节主要讨论如何正确声明和调用被调用函数。
首先,C/C++语言规定,调用函数时,被调用的函数必须已经存在或者在调用之前已经被声明。这意味着在调用一个函数之前,编译器需要知道这个函数的返回类型和参数列表。这通常通过函数原型(function prototype)来实现。
1. 当主调函数和被调用函数位于同一文件中时,如果调用在前,定义在后,那么必须在调用之前对被调函数进行原型声明。例如:
```c
int add(int a, int b); // 函数原型声明
int result = add(10, 20); // 调用函数
int add(int a, int b) { return a + b; } // 函数定义
```
在C语言中,函数的默认返回类型是`int`,`char`类型的函数声明也可以省略。而在C++中,任何函数定义在调用之后都必须先有原型声明,不论其类型。
2. 当被调函数位于另一个文件中,C语言中通常会使用`#include`预处理指令包含含有函数定义的头文件,例如:
```c
#include "math_functions.h" // 包含头文件
int result = add(10, 20); // 调用math_functions.h中定义的add函数
```
在C++中,只需要在调用函数之前进行原型声明,不一定需要包含整个文件,除非函数定义中使用了特定的全局变量或类。
函数声明必须以分号结束,如`int add(int a, int b);`,而函数定义后面不加分号。在函数原型声明中,形参变量名可以省略,编译器仅检查类型和数量。例如,`void print();`和`void print(int)`声明了接受不同参数的函数,但具体参数名在声明中并不重要。
在C语言中,`f()`表示函数可以接受任意数量和类型的参数,而`f(void)`表示函数没有参数。但在C++中,`f()`和`f(void)`是等价的,都表示无参数函数。需要注意的是,C语言要求函数声明必须在程序开头或主调函数的说明部分,而C++允许函数声明在调用之前的任意位置。
正确声明被调函数是保证程序能够正确编译和运行的关键。合理的函数声明和调用不仅可以提高代码的可读性和可维护性,还能避免因类型匹配错误导致的编译错误。理解并熟练运用函数声明和预处理指令,是提升编程技能的重要步骤。
2012-07-20 上传
518 浏览量
153 浏览量
2012-07-20 上传
163 浏览量
106 浏览量
540 浏览量
辰可爱啊
- 粉丝: 18
- 资源: 2万+
最新资源
- twoscaledemo:用于雷击的mod。 在tile def中演示新的比例尺功能
- Blog-Flask-Bootstrap
- Ajax-Wanderlust.zip
- data-structures
- Vulcanic
- RevShell:RevShell以多种方式从Reverse-Shell打印代码
- js-basics-arithmetic-lab-v-000
- uMQTTBroker:用于ESP8266 Arduino的MQTT Broker库
- cat-site:一个向您介绍猫的网站
- TecnoPro1
- caidevOficial:有关我的技能的主要自述文件
- ProjectWindowName:Xcode插件,将项目名称添加到窗口标题
- 折叠单元格Android::page_with_curl:FoldingCell是一种材料设计,用于扩展内容单元格,其灵感来自@Ramotion制成的折叠纸材料
- exe4j_windows-x64_7_0.zip
- duilib.zip
- 07-k-均值聚类