一个简单程序的结构

你已经看过一个具体的例子,下面可以了解一些 C程序的基本规则了。

程序由一个或多个函数组成,其中一定有一个名为 main()的函数。函数的描述由函数头和函数体组成。函数头包括预处理语句#include和函数名。可以通过圆括号识别一个函数名。而函数体位于花括号 { }中,并由一系列语句组成,每个语句以一个;结束 。

 

一个包含函数头和函数体的函数

上面的例子中包含一个声明语句,指出所使用的变量名和类型。然后是一个赋值语句,给变量赋一个值。接着,是1个输出语句,调用 printf()函数。最后,main()由一个 return 语句结束。

程序的可读性

让程序具有可读性是一个良好的编程习惯。一个可读的程序更易于理解,而且可以更容易地修改它。使程序可读还有助于你自己对程序所做的事情概念更清楚。

前面我们都已经知道了两种提高可读性的技巧:

● 选择有意义的变量名

● 使用注释

请注意这两种技巧的互补性。如果变量名是 width(宽度),就不需要用注释来说明该变量表示宽度,但是如果变量名是 video_routine_4,那么就需要解释一下 video routine 4的具体意义了。

第三个技巧是使用空行分隔一个函数的多个部分。例如,前面那个简单的示例程序就使用一个空行来分隔定义部分和动作部分。 C不要求有这个空行,但它可以增加程序的可读性。

第四个技巧就是每个语句尽量都只用一行。同样,这也是提高可读性的一个约定,而不是 C语言的要求。C的格式比较自由,你可以把多个语句放在一行或把一个语句分成好多行。

下面的语句对于编译器来说是合法的,但是非 常 不好看:

 

事实上如果你在公司里写代码如果是这种风格的话,你第二天就会被项目经理辞退,还会狠狠的骂一顿教你C语言的人,虽然他可能不知道是谁教的你C语言!

变量的多个声明

在一个程序中,需要实现的功能越多,那么所定义的变量就会越多,这时候我们通常可以在一个声明语句里声明两个变量。为此,在声明语句中需要用一个逗号把两个变量 分开。也就是说,

int a,b;

int a;

int b;

所表达的意思是完全相同的,只是所书写的方式不一样。

 

程序的多个函数

到目前为止,这些程序中只有一个main函数的函数体,那么除了 main()函数之外,怎样把你自己的函数加入到程序中呢。

我们来看看下面的例子

 

输出应该像下面这样:

 

hanshuyi( )函数和hanshuer( )函数在上面的程序中出现了 3次。

❀ 第一次出现是在函数声明中,通知编译器后面要用到的该函数。

❀ 第二次是在main()函数中以函数调用的形式出现的。

❀ 最后,程序给出了函数本身的源代码。让我们依次看一下它在程序中的每一次出现。

首先,我们写的hanshuyi()函数的定义方式和 main()是相同的,都是用一个函数头和括在花括号中的函数体。同时,hanshuyi()函数的执行时间由 main()函数调用它的位置决定,而不是由 hanshuyi()在文件中定义的位置决定的。

例如,在本程序中,你可以把 hanshuyi()函数定义在 main()函数的前面,程序的执行不会改变,hanshuyi()函数仍是在两次 printf()调用之间执行的。记住,所有的 C语言程序都是从 main()函数开始执行的,main函数也称之为入口函数,不管它在程序文件中处于什么位置。

 

最后我们来看下函数的走向,

✍ 当声明函数之后,我们就进入了主函数,执行第一句printf()函数;

✍ 然后通过简单地给出 hanshuyi()函数的名字在 main()函数中调用该函数;

✍ 当 hanshuyi()执行完毕后,程序会继续执行 main()函数的下一个语句,也就是第二个printf()函数;

✍ 然后再执行hanshuer() ;

✍ 然后执行getchar()函数,防止闪屏;

✍ 最后return结束显示窗口。


学C/C++不易,此路应携手前行。

欢迎关注我的编程公众號【草莓味狸猫】!

如果你想跟着小编一起学编程的话!

可以来我的C语言C++编程学习基地,【点击进入】

还有(源码,零基础教程,项目实战教学视频)!

 

最新文章

  1. javascript 事件的一点感悟
  2. TFS 2015 Update 2功能探索
  3. 仿Android网易新闻客户端,并增加水平图片滑动,改进阅读体验
  4. myloader原理0
  5. (转载)mysql group by 用法解析(详细)
  6. WHU 1572 Cyy and Fzz (AC自动机 dp )
  7. leetcode 总结part1
  8. 01背包java实现(入门到精通)
  9. form表单数据封装成json格式并提交给服务器
  10. 回文自动机(PAM) 学习笔记
  11. Mac中安装git后,终端运行git出错,提示安装Xcode
  12. ORM版学员管理系统3
  13. ignitius and princess 2(全排列)
  14. [转]在centos 6.4下安装opencv 2.3.1
  15. SGU 271 Book Pile
  16. Redis集群方案总结
  17. Linux服务器部署系列之四—DHCP篇
  18. PHP初级篇
  19. SQLSERVER 数据类型int、bigint、smallint 和 tinyint范围
  20. mac linux 命令笔记 - 权限管理

热门文章

  1. 关于h5游戏开发,你想了解的一切都在这儿!
  2. Django+bootstrap启动登录模板页面(Django三)
  3. JavaCV与OpenCV的区别和使用中遇到的问题
  4. golang "%p"学习记录随笔
  5. linux学习(五)Linux 文件与目录管理
  6. python中生成随机整数(random模块)
  7. 后端开发实践:Spring Boot项目模板
  8. python中浅拷贝和深拷贝的区别
  9. iOS14 debug安装的带有flutter应用从桌面图标重新启动时闪退
  10. 一加云耳2和一加云耳z区别