电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 华强电子网APP

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

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

来源:-- 作者:-- 浏览:335

标签:

摘要: 函数原型现在,把程序中的所有函数声明函数原型已成为公认的良好编程风格。函数原型在真正定义函数之前,向后面的代码声明了函数的名称、参数和返回值的类型。为了理解函数原型的用处,请录入下面的程序并运行: #include void main(){printf("%dn",add(3));}int add(int i, int j){return i+j;}尽管ad

函数原型

现在,把程序中的所有函数声明函数原型已成为公认的良好编程风格。函数原型在真正定义函数之前,向后面的代码声明了函数的名称、参数和返回值的类型。为了理解函数原型的用处,请录入下面的程序并运行:

#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)编译器也支持函数原型,但原型中的参数列表必须为空。旧式编译器不对参数列表进行错误检查。

动手一试
请返回到前面介绍的那个冒泡法排序的例子,为冒泡排序创建一个函数。
请返回到之前演示的程序,创建一个函数,使其从用户处输入数据,而不再使用主函数提供的数据。

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67