0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解一些C程序的基本规则

lhl545545 来源:程序猿虎牙参 作者:程序猿虎牙参 2020-07-27 11:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一个简单程序的结构

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

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

了解一些C程序的基本规则

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

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

程序的可读性

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

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

● 选择有意义的变量名

● 使用注释

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

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

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

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

了解一些C程序的基本规则

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

变量的多个声明

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

int a,b;

int a;

int b;

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

程序的多个函数

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

我们来看看下面的例子

了解一些C程序的基本规则

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结束显示窗口。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144631
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66850
  • C程序
    +关注

    关注

    4

    文章

    255

    浏览量

    37427
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于六类网线一些问题的解答

    今天我们就围绕网友一些常见的关于六类网线的问题进行下汇总式解答: 问 六类网线可以当电源用吗? 答 六类网线并不是设计用于传输电力的电缆,因此般不建议将其用于电源传输。 尽管六类网线的线芯可以
    的头像 发表于 12-09 11:13 70次阅读

    贴片电容精度J±5%的一些详细知识

    贴片电容精度J±5%表示电容的实际值与标称值之间的偏差范围在±5%以内 ,以下是关于贴片电容精度J±5%的一些详细知识: 、精度等级含义 J±5% :字母“J”在贴片电容的标识中通常表示标称精度
    的头像 发表于 11-20 14:38 159次阅读
    贴片电容精度J±5%的<b class='flag-5'>一些</b>详细知识

    使用三菱FX5U PLC的经典小程序案例

    实际的PLC程序往往是某些典型小程序的扩展与叠加,因此掌握一些典型小程序对大型复杂程序的编写非常有利。 鉴于此,本文将给出
    的头像 发表于 11-07 13:57 4865次阅读
    使用三菱FX5U PLC的经典小<b class='flag-5'>程序</b>案例

    Debian和Ubuntu哪个好一些

    兼容性对比Debian和Ubuntu哪个好一些,并为您揭示如何通过RAKsmart服务器释放Linux系统的最大潜能。
    的头像 发表于 05-07 10:58 858次阅读

    对CY7C65211有一些疑问求解答

    我对 CY7C65211 有一些疑问。 (1)关于制造商字符串,评估套件(CYUSB234)显示“ CYPRESS™ Semiconductor”,但我认为从现在开始发货的设备的默认值将更改
    发表于 05-06 09:28

    如何添加一些网络上的库到mpy固件的说明或手册教程?

    下有没有关于如何添加一些网络上的库到mpy固件的说明或手册教程? 问题2: 关于mpy的image库在哪里能了解学习内部代码,只了解一些python,想知道怎么从
    发表于 04-29 08:16

    使用RTD5.0.0的s32k312,C40_Ip擦除pflash存在一些问题求解决

    我正在使用 RTD5.0.0 的 s32k312,C40_Ip擦除 pflash 存在一些问题: Erase block0(0x420000-0x500000) failed
    发表于 04-11 06:53

    树莓派在自动化控制项目中的一些潜在应用

    自动化控制项目中的一些潜在应用。之前,我们已经为Arduino平台探讨了相同的话题。我们确定Arduino是个出色的教育工具,但由于一些限制,它无法在工业环境中完全
    的头像 发表于 03-25 09:45 479次阅读
    树莓派在自动化控制项目中的<b class='flag-5'>一些</b>潜在应用

    如何在 树莓派 上编写和运行 C 语言程序

    在本教程中,我将讨论C编程语言是什么,C编程的用途,以及如何在RaspberryPi上编写和运行C程序。本文的目的是为您介绍在RaspberryPi上进行
    的头像 发表于 03-25 09:28 942次阅读
    如何在 树莓派 上编写和运行 <b class='flag-5'>C</b> 语言<b class='flag-5'>程序</b>?

    为什么你的串口总是丢一些特殊字符?

    导读在嵌入式开发和物联网应用中,Linux系统的串口通信至关重要。本文将简单介绍Linux下串口设备的命名规则和termios结构体,并解析终端的三种工作模式,帮助开发者更好地掌握Linux串口编程
    的头像 发表于 02-06 13:26 622次阅读
    为什么你的串口总是丢<b class='flag-5'>一些</b>特殊字符?

    独立服务器和云服务器哪个快一些

    独立服务器和云服务器哪个快一些?在数字服务部署中,独立服务器与云服务器的速度差异并非绝对,需结合资源配置与应用场景综合判断。以下是UU云对独立服务器和云服务器的核心维度对比分析:
    的头像 发表于 02-05 10:08 804次阅读

    AN-202: IC放大器用户指南:去耦、接地及其他一些要点

    电子发烧友网站提供《AN-202: IC放大器用户指南:去耦、接地及其他一些要点.pdf》资料免费下载
    发表于 01-13 15:16 3次下载
    AN-202: IC放大器用户指南:去耦、接地及其他<b class='flag-5'>一些</b>要点

    AN29-关于DC-DC转换器的一些想法

    电子发烧友网站提供《AN29-关于DC-DC转换器的一些想法.pdf》资料免费下载
    发表于 01-08 13:57 0次下载
    AN29-关于DC-DC转换器的<b class='flag-5'>一些</b>想法

    ads1232获取的数据中经常有一些比较大的值或者一些错误值,这个是因为什么原因?

    数据中经常有一些比较大的值 或者一些错误值,这个是因为什么原因。最后8位数据致在跳动,是不是我的基准电压不够稳定。 -----85b1----- -----858d-----
    发表于 01-08 08:19

    村田代理商告诉你贴片电容选用的规则

    在选择贴片电容时,需要遵循系列规则,以确保所选电容能够满足电路的设计需求并具备较高的可靠性和稳定性。以下是一些关键的选用规则
    的头像 发表于 12-23 15:09 699次阅读