C语言入门教程-函数原型

函数原型
现在,把程序中的所有函数声明函数原型已成为公认的良好编程风格。函数原型在真正定义函数之前,向后面的代码声明了函数的名称、参数和返回值的类型。为了理解函数原型的用处,请录入下面的程序并运行:
#include void main() {printf(%d\n,add(3));} int add(int i, int j) {return i+j;} 尽管add要求传入两个参数而实际只传入了一个,这段代码还是能在很多编译器上通过编译而不会产成警告。这是因为很多c编译器既不对参数类型也不对参数个数做匹配性检查。于是您可能仅是因为不小心多传或少传了一个参数而要浪费大量时间调试代码。上面的代码能顺利通过编译,却给出错误的结果。
针对此问题,c语言允许您在程序开始处(实际是任何地方)声明函数原型。这样一来,c就会检查所有参数列表的类型和数目。试试编译下面的程序:
#include int add (int,int); /* add 的函数原型 */ void main() {printf(%d\n,add(3));} int add(int i, int j) {return i+j;} 函数原型使编译器对printf语句报错。
请在程序开始处为每个函数声明原型。这样可以为您节省大量的调试时间,还顺便解决了不能在定义前使用函数的问题。例如,下面的代码不能通过编译:
#include void main() {printf(%d\n,add(3));} float add(int i, int j) {return i+j;} 您也许会问:为什么add返回int时可以编译,返回float时就不行了?因为老一些的c编译器默认函数返回一个int值。使用函数原型可以解决这个问题。“旧式”(非ansi)编译器也支持函数原型,但原型中的参数列表必须为空。旧式编译器不对参数列表进行错误检查。
动手一试
请返回到前面介绍的那个冒泡法排序的例子,为冒泡排序创建一个函数。
请返回到之前演示的程序,创建一个函数,使其从用户处输入数据,而不再使用主函数提供的数据。

裕太微电子联合申报项目荣获浙江省通信学会科学技术奖一等奖
0603封装 128种阻值 每种阻值500片 贴片电阻盒
TCL华星为moto三款新旗舰产品提供显示屏
苹果将取消3D Touch功能
abb变频器ACS510参数设置步骤
C语言入门教程-函数原型
华为荣耀8、华为Nova对比评测:荣耀8和华为Nova青春代表性价比谁将更胜一筹
电压随从器的隔离作用
MAX15054 高边MOSFET驱动器,用于HB LED驱
电磁流量计的安装要点与安装注意事项
AI人形侦测+4倍聚焦放大 萤石发布智能家居云台摄像机C6Wi
电比例排量控制柱塞泵放大器
用简单的串联电路说明电动势和电压的区别
新型蓄热材料可使太阳能夜间发电
配电装置的基本要求 配电装置包括哪些设备
Arm在IPO招股书中用3500字详述在华风险
美国“三网融合”的竞争模式及战略
面向结构化数据的文本生成技术研究
基于模糊逻辑的指纹图像对比度增强算法
三种不同类型消弧线圈的原理