C语言学习笔记day11—创建、使用与分析简单函数

创造并使用简单函数

直接上c primer plus的经典例子

目标:创造一个在一行打印40个星号的函数,并在一个打印表头的程序中使用该函数

d0255f28b8d1487c8c95fb5c341af2e5.jpg

 分析:

  • 程序在3处使用了starbar标识符:函数原型告诉编译器函数starbar( )的类型;
  • 函数调用表明在此处执行函数;
  • 函数定义明确地指定了函数要做什么
  • 函数跟变量一样,有多种类型。任何程序在使用函数之前都要声明该函数的类型。因此,在main()函数定义的前面出现了下面的ANSI C 风格的函数原型:

void starbar (void);                                 

  圆括号表明starba 是一个函数名。

  1. 第1个void是函数类型,void类型表明函数没有返回值。
  2. 第2个个void(在圆括号中)表明该函数不带参数。
  3. 分号表明这是在声明函数,不是定义函数。

也就是说,这行声明了程序将使用一个名为starbar()、没有返回值、没有参数的函数,并告诉编译器在别处查找该函数的定义。

  • 一般而言,函数原型指明了函数的返回值类型和函数接受的参数类型这些信息称为该函数的签名(signature)。对于starbar()函数而言,其签名是该函数没有返回值,没有参数
  • 程序把starbar()原型置于main()前。当然,也可以放在main()里面的声明变量处。放在哪个位置都可以。
  • 在main()中,执行到下面的语句时,调用了starbar()函数:                                           starbar();                                                          这是调用void类型函数的一种形式。当计算机执行到starbar();语句时,会找到该函数的定义并执行其中的内容。执行完starbar()中的代码后,计算机返回主调函数继续执行下一行(本例中,主调函数是main()),见图

07d1a9c1590d4affb7834fbae385acca.jpg

  •  程序中starbar()和main()的定义形式相同。首先函数头包括函数类型、函数名和圆括号,接着是左花括号(即大括号{})、变量声明、函数表达式语句,最后以右花括号结束,如图。

f040c578d9d2414fb640a19b4e432791.jpg

 注意:函数头中的starbar()后面没有分号,告诉编译器这是定义starbar(),而不是调用或者声明函数原型。


  • 程序把starbar()和main()放在一个文件中。当然,也可以把它们分别放在文件中。把函数都放在一个文件中的单文件形式比较容易编译,而使用多个文件的单文件方便在不同的程序中使用同一个函数。如果把函数放在一个单独的文件中,要把#define和#include指令也放入该文件。这种情况后面再讨论。main()的右花括号告诉编译器该函数结束的位置,后面的starbar()函数头告诉编译器starbar()是一个函数。
  • starbar()函数中的变量count是局部变量,意思是该变量只属于starbar()函数。可以在程序中的其他地方(包括main())中使用count,这不会引起名称冲突,它们是同名的不同变量。

如果把starbar()看作是一个黑盒,那么它的行为是打印一行星号。不用给该函数提供任何输入,因为调用它不需要其他信息。而且它没有返回值,所以也不给main()提供(或返回)任何信息。简而言之,starbar()不需要与主函数通信。

下次介绍一个函数间需要通信的例子。

 

现在是凌晨3点1分,今天下午睡了四五个小时,今晚估摸着能睡四个小时这样子,麻烦了麻烦了,作息紊乱了👀

That's all.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值