|
与变量一样,C程序中的多有函数在使用之前都必须声明。函数声明由4部分组成。
函数类型
函数名
参数列表
终止分号
函数的编码形式为:
function-type function-name(parameter list);
这非常类似于函数名,只不过它有终止分号。例如,前面介绍过的mul函数可以这样声明:
int mul(int m,int n);
注意要点
参数列表必须用逗号分隔开。
函数原型声明与函数定义中的参数名不必相同。
参数的原型、数量和顺序必须与函数定义中的匹配。
声明中的参数名时可选的。
如果函数没有形参,那么参数列表可写作(void)。
如果函数返回的是int类型的数据,那么返回类型是可选的。
如果不返回值,那么返回类型必须是void。
当声明类型与函数定义的类型不匹配时,编译器将产生错误。
mul函数声明可接受的形式还有:
int mul (int int);
mul(int a,int b);
mul(int,int)
当函数无参数,也不返回任何值时,其原型可写作为:
void display(void);
函数原型声明可以放在程序的如下两个地方:
(1) 所有函数之前。
(2) 函数定义之中。
当函数声明位于所有函数之前,那么该函数原型为全局原型。这种函数声明对程序中的所有函数都是可用的。
当函数声明位于函数定义中,该函数原型称为局部原型。这种声明主要是被包含它们的函数使用。
函数声明的所在位置决定了在程序中的其他函数是否可以使用它。这种区域称为函数的使用范围。良好的编程风格是在main函数前面的全局声明区间中声明函数原型。这除了可以提供灵活性之外,还便于快速了解程序中都使用了哪些函数,提供了程序的文档化。
原型声明不是必须的。如果函数在使用之前没有进行声明,C将假设在链接时其内容是可用的。由于没有原型,C假设函数的返回类型为整型,参数的类型与形式定义相匹配。如果这些假设有误,那么链接程序将失败,需要修改程序。因此最好是进行原型声明,而且最好是在全局声明区间中进行。
参数使用在以下3个地方:
声明中。
函数调用中。
函数定义中。
函数原型和定义中的参数称为形参,而函数调用中的参数称为实参。用在调用语句中的实参可以是常量、变量或表达式。
形参和实参在类型、顺序和数量上必须严格匹配。但名称不需要匹配。
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。