C语言函数全解析:从基础到高级应用
1. 函数声明
在使用函数之前进行声明,能让编译器知晓函数的类型,即声明描述了函数的接口。声明至少要指明函数返回值的类型,示例如下:
int rename();
这行代码将 rename()
声明为一个返回 int
类型值的函数。由于函数名默认是外部标识符,所以这个声明等同于:
extern int rename();
不过,当前的声明并未包含函数参数的数量和类型信息。因此,编译器无法检验对该函数的调用是否正确。若调用函数时传入的参数在数量或类型上与函数定义中的参数不同,就会引发严重的运行时错误。为避免此类错误,应始终声明函数的参数,也就是使用函数原型。例如,标准库函数 rename()
用于更改文件名,其原型如下:
int rename( const char *oldname, const char *newname );
此函数接受两个指向 const char
类型的指针作为参数,意味着函数仅使用指针来读取 char
对象,所以参数可以是字符串字面量。
在原型声明中,参数的标识符是可选的。若包含参数名,其作用域仅限于原型本身。因为这些参数名对编译器并无实际意义,它们实际上只是用于告知程