前面两节介绍了如何快速搭建 C 语言开发学习环境,并且给出并解释了 hello world 的代码。上一节介绍了C语言的函数,应该注意到,到目前为止,我们使用的函数都是现有的系统函数(例如 printf,sin 等函数)。事实上,实际需求通常是很是复杂的,只依靠现有的函数很难完成。好在我们可以根据需求,自己界说 C 函数。

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-1.jpg (32.63 KB, 下载次数: 0)

2018-11-4 22:45 上传

可以把一个函数看作是一块积木,各种各样的积木才能聚积成复杂的建筑。只有几种积木,能完成的建筑太有限了,如果能够自己造各种各样的积木,再复杂的建筑也能完成。通过前面两节的内容,我们已经了解函数界说的语法了:

返回值类型 函数名(参数列表){ 语句列表}注意函数名在相应可见域内要连结唯一性,例如,在 main 函数所在文件里界说的函数名不克不及也为 main。再啰嗦一下 main 函数,主要是因为它是默认的入口函数,比较特殊。

Old Style C的气概的 main 函数界说写成 main(){…} 形式,不写返回值类型也不写参数列表。Old Style C规定不写返回值类型就暗示返回int型,不写参数列表就暗示参数类型和个数没有明确指出。这种宽松的规定会致使很多复杂的Bug产生,现在的 C 也连结了这种写法的兼容,可是鉴于它可能会产生 bug,还是不要这样写。

其实系统在挪用 main 函数时是传参数的,所以 main 函数最标准的形式应该是 int main(int argc, char * argv[]),这种参数传递在 linux 下使用起来很是便利,以后用到了再详细解释。C标准也规定了 int main(void) 这种形式,如果不使用系统传进来的两个参数也可以写成这种形式。但除这两种形式之外,以其它形式界说main函数都是毛病的或不成移植的。

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-2.jpg (45.05 KB, 下载次数: 0)

2018-11-4 22:45 上传

自界说函数

在了解了自界说函数的一些限制后,很容易就可以写出如下代码。下面的代码中,我们界说了 printA 函数,它的参数为空,也没有返回值,仅仅是打印出一个字母 “A”。

#include #include void printA(void){ printf("A\n");}int main(){ printA(); return 0;}我们在 codeblocks 里执行它,发现程序在控制台中打印出了字母 A。

关于 codeblocks 的安装和使用,可参照第一节。

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-3.jpg (54.15 KB, 下载次数: 0)

2018-11-4 22:45 上传

以后如果想打印 A,只需要执行 printA 函数就可以了。更进一步的,我们自己界说的 printA 函数也可以当作系统函数(例如)一样嵌套使用,请看如下代码:

#include #include void printA(void){ printf("A\n");}void print2A(void){ printA(); printA();}int main(){ print2A(); printf("----\n"); print2A(); return 0;}我们又新界说了一个函数 print2A,它的功能就是在控制台打印两个 A。在 codeblocks 里执行,发现与预期一致。

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-4.jpg (57.84 KB, 下载次数: 0)

2018-11-4 22:45 上传

体会

从上面的简单例子中,可以总结出以下信息:

同一个函数可以挪用屡次。可以用一个函数去挪用另一个函数,第二个函数可以去挪用第三个函数。挪用自界说的函数,是通过我们取的名字挪用的,例如 main 函数中挪用 print2A();函数可以使代码更简洁,原本打印两个 A 需要两行代码,现在只需要 print2A 一行就可以了。你可能会说,我界说 print2A 就用了 5 行啊,哪里简洁了。可是,以后只要遇到需要打印两个 A 的处所,我都可以挪用 print2A,如果有 10 个处所需要打印两个 A 呢?另外,如果有一天,我想在打印两个 A 的时候不换行,那我只需要修改 printA,把里面的 “\n”删失落就可以了,而不消去找那 10 个需要打印两个 A 的处所逐个修改。读代码和读文章不一样,按从上到下从左到右的顺序读代码未必是最好的。好比上面的例子,按顺序应该是先看 printA 再看 print2A 再看 main。不过,如果换一个角度,按代码的执行顺序来读也许会更好:

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-5.jpg (31.29 KB, 下载次数: 0)

2018-11-4 22:45 上传

因为 main 是入口函数,所以第一句要执行的就是 print2A 函数,那它是什么功能呢?于是目光移到 print2A 函数,它的第一句是 printA 函数,于是进入 printA 函数。奥,知道了 print2A 先要打印一个 A,然后又要执行 printA 函数,又打印了一个 A。这下知道了,main 函数里的第一句要打印两个 A。

实际上,在很多大型项目中,要熟悉它的代码结构,第一件事往往就是找到入口函数。

c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了-6.jpg (71.5 KB, 下载次数: 0)

2018-11-4 22:45 上传

欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。

更多内容回复查看:

游客,如果您要查看本帖隐藏内容请回复

c语言的积木编程,c语言入门3,自己造积木,掌握它就能随心所欲的完成各种工作了...相关推荐

  1. c语言 源程序代码,编程(C语言源程序代码)

    编程(C语言源程序代码) 已知 S=1+1/(1+2)+1/(1+2+3)+-+1/(1+2+3+-+N) ,当N的值为50时,求S的值. 要求:按四舍五入的方式精确到小数点后第四位. #includ ...

  2. jdy40程序C语言,lr脚本编程C语言.docx

    lr脚本编程C语言.docx 1.define COUNT 100define SALARY 4000Actionint total;totalCOUNT*SALARY;lr_output_messa ...

  3. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

    本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...

  4. c语言的积木编程,c语言入门第3节,掌握它就能随心所欲的编程了,自己造积木...

    前面两节介绍了如何快速搭建 C 语言开发学习环境,并且给出并解释了 hello world 的代码.上一节介绍了C语言的函数,应该注意到,到目前为止,我们使用的函数都是现有的系统函数(例如 print ...

  5. c语言用户输入编程,C语言入门教程-Printf:读取用户输入

    Printf:读取用户输入 前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了.可以改为下面的程序: #include int main() {int a, b, c ...

  6. 手机c语言多文件编程,C语言多文件编程

    今天,IT培训网小编为大家总结的是C语言,C语言多模块开发(多文件编程). 目前为止,我们编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,对于只有几百行的小程序来说这或许可以接受 ...

  7. c语言 define 中文编程,c语言define什么意思

    c语言define什么意思? 是定义的意思,将一个变量强制定义为你想要的值.如#define PI 3.14就是将PI的值定义成3.14,这样在程序里看到PI就可以替换成3.14了. 推荐:<c ...

  8. 掌握了c语言就能够编程,C语言编程学习-C语言编程学习app-最火手机站

    C语言编程学习是一款优质的学习软件,能够帮助用户更好的学习C语言,让用户在线就能够获得更多的帮助,快速的解决你的学习需求,增加你的使用体验,进入平台就能够获得优质的学习服务,更好的解决用户的学习问题; ...

  9. c语言i o编程,C 语言输入输出 (I/O)

    C 语言输入输出 (I/O) 在本教程中,您将学习如何使用scanf()函数从用户处获取输入,并使用printf()函数向用户显示输出. C 语言输出 在C语言编程中,printf()是主要的输出函数 ...

最新文章

  1. mysql 存储过程 数组参数_问个小问题,关于存储过程传递数组参数
  2. NPOI的excel导出1
  3. Mysql中explain命令查看语句执行概况
  4. foreman架构的引入2-安装前环境准备
  5. SSH中设置字符编码防止乱码
  6. 车牌检测和识别(转)
  7. nodejs实现redis ORM
  8. PHP如何使用IPFS API用法
  9. mysql常用语句1
  10. 研发项目管理软件对比调研报告
  11. android nef转jpg格式文件,nef格式转换成jpg
  12. 济南推动大数据产业发展 居民生活将有新变化
  13. windows10自带屏保设置
  14. 为什么会“道可道非常道,名可名非常名”?
  15. Keil MDK使用编译器AC5与AC6生成浏览信息的差异
  16. 双矩阵对策MATLAB,带有模糊收益的双矩阵对策研究
  17. #大三狗的日常总结与反思03#
  18. Apache HBase
  19. Linux ftrace 1.1、ring buffer
  20. python判断奇数和偶数_从Python中的给定列表中提取偶数和奇数

热门文章

  1. Res2Net 算法的介绍
  2. mc服务器 领地插件配置文件,《我的世界》领地插件 领地插件详细使用教程
  3. 思维模型 DISC色彩性格
  4. spark运行出现py4j.protocol.Py4JError异常
  5. 对计算机网络看法500字,500字信息技术学习评价
  6. 用API函数使程序标题栏闪烁
  7. 4、基本命令-系统管理
  8. 嵌入式实时操作系统7——任务优先级表
  9. sql server 数字转大写
  10. SAP_ABAP_BADI AND NEW BADI