C语言函数定义详解-新旧方式对比
需积分: 41 71 浏览量
更新于2024-08-08
收藏 2.4MB PDF 举报
"C语言函数定义的学习笔记,主要讲解了函数定义的形式、参数类型以及新旧方式的函数定义差异。"
在C语言中,函数是程序的基本构建块,用于封装可重用的代码段。函数定义允许我们将一系列操作组合在一起,形成一个独立的功能单元。本笔记主要关注函数的定义方式,包括新旧两种形式。
A.10.1 函数定义的语法结构如下:
1. 函数定义由说明区分符(可选)、说明符和复合语句组成。说明区分符可以包含`extern`或`static`存储类区分符,它们分别指示函数的作用域。`extern`表示函数可以在整个程序中访问,而`static`则限制函数在当前源文件内可见。
2. 函数可返回五种基本类型:算术类型(如int、float等)、结构体、联合、指针或void。函数不能返回函数或数组。函数的返回类型需要在定义时明确指定。
函数说明符有两种形式:
- 直接说明符(参数类型表):这种方式是ANSI C标准引入的新方法,参数类型在参数列表中明确指定。例如:
```c
void print_name(const char* name);
```
- 直接说明符(标识符表):旧的函数定义方式,参数名字在标识符列表中给出,类型在说明表中指定。例如:
```c
int add(int x, int y);
```
在新方式的函数定义中,如果参数类型表以`void`结尾,表示函数没有参数。如果参数类型表以“,...”结尾,那么函数可以接受可变数量的参数,使用`va_arg`宏处理这些额外参数。例如,`printf`函数就是这样的例子。
旧方式的函数定义中,未指定类型的参数默认为`int`类型。说明表只能说明标识符表中列出的参数,不能初始化,`register`是唯一可用的存储类区分符。
在函数体内,参数被视为在复合语句开始时声明的,因此不能在同一个作用域内重新声明同名参数。如果参数被声明为数组,实际传递的是指向数组的指针。如果参数是函数类型,那么传递的是函数指针。
在调用函数时,传入的参数会根据需要转换成函数期望的类型,这个过程在A.7.3节中有详细说明。
注意,本章的目的是快速介绍C语言的基础知识,如变量、常量、运算符、控制流和函数。虽然没有深入讨论所有特性,如指针、结构和标准库,但对于初学者和有经验的程序员来说,这提供了一个了解C语言的起点。学习新语言最好的方法是实践编程,例如,从打印"hello,world"的简单程序开始。
2024-06-13 上传
2021-08-07 上传
2024-05-10 上传
2023-04-25 上传
2023-06-06 上传
2023-06-08 上传
2023-03-28 上传
2023-04-05 上传
菊果子
- 粉丝: 51
- 资源: 3764
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析