C/C++模块化程序设计:函数与调用

版权申诉
0 下载量 2 浏览量 更新于2024-07-03 收藏 481KB PPT 举报
"C/C++程序设计的第五章主要讲解了模块化程序设计的概念和方法,包括函数的定义、参数、调用以及不同类型的变量。这一章涵盖了模块化编程的核心要素,帮助开发者理解如何通过函数组织代码,提高代码的可读性和复用性。 5.1概述 模块化程序设计是一种将复杂问题分解为多个独立模块的方法,每个模块(在C/C++中通常表现为函数)解决一个小问题,然后组合这些模块来解决整个问题。系统提供的函数库包含标准函数,用户可以利用这些函数避免重复编写代码。C语言中的函数是平行的,可以互相调用但不能嵌套,分为标准函数和自定义函数,且有无参数之分。 5.2函数定义的一般形式 函数定义包括无参函数和有参函数两种形式。无参函数的定义只需函数名和花括号,而有参函数需要指定参数列表。函数名前的类型标识符表示函数返回值类型,函数体内部包含了函数的执行逻辑。无返回值的函数可以用void关键字标识,"空函数"则不执行任何操作,主要用于预留位置以备未来扩展。 5.3函数参数和函数的值 函数参数分为形式参数(形参)和实际参数(实参)。在函数调用时,实参向形参传递数据,这种传递是"值传递",即单向不可逆。形参在调用前后不占用固定存储空间,实参可以是常量、变量或表达式,但其类型必须与形参一致。 5.4函数的调用 通过函数名和参数列表调用函数,如`c=max(a,b)`,其中`max`是函数名,`a`和`b`是实参,`c`用于接收函数返回值。 5.5函数的嵌套调用 尽管C语言的函数不能嵌套定义,但可以嵌套调用,即在一个函数的执行过程中调用另一个函数。 5.6函数的递归调用 函数可以调用自身,这就是递归调用。每次调用都会创建新的函数调用栈帧,直到满足某个停止条件。 5.7局部变量和全局变量 局部变量在函数内部声明,仅在该函数内有效;全局变量在整个程序范围内都可见,可以在多个函数中使用。 5.8动态存储变量与静态存储变量 动态存储变量在运行时分配内存,如使用`malloc`或`calloc`等函数;静态存储变量在编译时分配内存,其生命周期贯穿整个程序运行。 5.9内部函数和外部函数 内部函数(static修饰的函数)只在当前源文件中可见,外部函数则可以在多个文件间共享。 5.10编译预处理 编译预处理包括宏定义、文件包含和其他预处理器指令,它们在编译阶段处理源代码。 5.11“文件包含”处理 `#include`指令用于将一个文件的内容插入到当前文件中,实现代码复用。 5.12条件编译 条件编译允许根据特定条件选择性地编译部分代码,如`#ifdef`, `#ifndef`, `#if`, `#else`, `#endif`等指令。 通过以上内容,学习者可以掌握C/C++中模块化程序设计的基本概念和技巧,从而编写出结构清晰、易于维护的代码。