侵权投诉

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

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

收藏 人收藏
分享:

评论

相关推荐

Python的知识点总结详细说明

本文档的主要内容详细介绍的是Python的知识点总结详细说明。
发表于 09-29 17:13 8次 阅读
Python的知识点总结详细说明

许多C++开发人员则希望C语言灰飞烟灭?!

70年代初,贝尔实验室创建了C语言,它是开发UNIX的副产品。很快C就成为了最受欢迎的编程语言之一。....
的头像 嵌入式ARM 发表于 09-29 14:42 34次 阅读
许多C++开发人员则希望C语言灰飞烟灭?!

C语言中的短路现象

短路现象1 比如有以下表达式 abc 只有a为真(非0)才需要判断b的值;只有a和b都为真,才需要判....
的头像 嵌入式ARM 发表于 09-29 14:39 24次 阅读
C语言中的短路现象

如何实现对通信数据的CRC计算

前言 最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了....
的头像 嵌入式ARM 发表于 09-29 14:26 45次 阅读
如何实现对通信数据的CRC计算

上升时间与压摆率是一回事吗

我们先来看一下压摆率,压摆率的概念与上升时间类似,但有一些重要区别。如图1所示,阶跃响应的上升时间被....
发表于 09-29 11:54 37次 阅读
上升时间与压摆率是一回事吗

了解内存:如何在嵌入式C语言中使用结构

处理器如何访问内存?了解有关C语言结构以及如何使用它们的更多信息。 本文将首先解释内存访问粒度的概念....
的头像 嵌入式星球 发表于 09-28 09:46 74次 阅读
了解内存:如何在嵌入式C语言中使用结构

拉普拉斯变换的习题与详解免费下载

本文档的主要内容详细介绍的是拉普拉斯变换的习题与详解免费下载。
发表于 09-28 08:00 11次 阅读
拉普拉斯变换的习题与详解免费下载

网络函数的习题与详解详细说明

本文档的主要内容详细介绍的是网络函数的习题与详解详细说明。
发表于 09-28 08:00 22次 阅读
网络函数的习题与详解详细说明

C语言的100个经典算法免费下载

本文档的主要内容详细介绍的是C语言的100个经典算法免费下载。
发表于 09-28 08:00 22次 阅读
C语言的100个经典算法免费下载

使用Verilog硬件描述语言实现简易函数发生器的设计说明

简易函数信号发生器在电路实验和设备检测中具有十分广泛的用途。在基于QUARTUS2软件平台下,运用V....
发表于 09-27 16:41 13次 阅读
使用Verilog硬件描述语言实现简易函数发生器的设计说明

关于Python的5种高级特征应用

本文主要讲解 Python 的 5 种高级特征,以及它们的用法。 1. Lambda 函数 Lamb....
的头像 39度创意研究所 发表于 09-27 15:56 103次 阅读
关于Python的5种高级特征应用

学习嵌入式C编程语言:了解联合数据对象

嵌入式C中struct与union的区别 在本系列的上一篇文章中,我们讨论了嵌入式C中的结构允许我们对不同数据类型的变量进行分组并...
发表于 09-27 15:55 202次 阅读
学习嵌入式C编程语言:了解联合数据对象

了解内存:如何在嵌入式C语言中使用结构

处理器如何访问内存?了解有关C语言结构以及如何使用它们的更多信息。 本文将首先解释内存访问粒度的概念,以便我们可以对处理...
发表于 09-27 15:45 101次 阅读
了解内存:如何在嵌入式C语言中使用结构

如何在基于SV的仿真环境中使用软件语言

除了这个方式,SV还提供了和C/C++直接的接口DPI。DPI接口允许用户用C编写程序,并和SV实现....
的头像 39度创意研究所 发表于 09-27 14:20 58次 阅读
如何在基于SV的仿真环境中使用软件语言

嵌入式C语言源代码优化方案 主要优化程序的执行速度

1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入....
的头像 strongerHuang 发表于 09-27 11:45 134次 阅读
嵌入式C语言源代码优化方案  主要优化程序的执行速度

通过一些附加信息和有用的实现技术对C函数的探索

在本文中,我们将通过一些附加信息和一些有用的实现技术来结束对C函数的探索。 基本的C函数(例如,一个....
的头像 multisim 发表于 09-27 11:11 93次 阅读
通过一些附加信息和有用的实现技术对C函数的探索

如何得当使用C语言的特殊的用法

C语言有很多特殊的用法,如果这些特殊用法使用得当,会是你的代码变得更加有健壮,更加容易维护。 比如我....
的头像 strongerHuang 发表于 09-27 10:41 95次 阅读
如何得当使用C语言的特殊的用法

了解嵌入式C:什么是结构?

本文提供了有关嵌入式C编程中的结构的一些基本信息。在介绍了结构之后,我们将看一下这个强大的数据对象的一些重要应
的头像 嵌入式星球 发表于 09-27 09:59 66次 阅读
了解嵌入式C:什么是结构?

了解嵌入式C:什么是结构?

本文提供了有关嵌入式C编程中的结构的一些基本信息。 在介绍了结构之后,我们将看一下这个强大的数据对象的一些重要应用。然后...
发表于 09-27 09:24 202次 阅读
了解嵌入式C:什么是结构?

C++ Primer Plus的PDF的电子书免费下载

本书全面讲述了C语言编程的相关概念和知识。全书共17章。第1、2章学习C语言编程所需的预备知识。第3....
发表于 09-27 08:00 17次 阅读
C++ Primer Plus的PDF的电子书免费下载

C语言内存操作的陷阱!你踩过坑吗?

[table] [tr][td] 1、返回局部变量的地址,或者返回指向局部变量的指针 int *stackref() {     int val; &...
发表于 09-26 16:02 101次 阅读
C语言内存操作的陷阱!你踩过坑吗?

【大联大友尚安森美半导体感光芯片USB双目摄像头模组试用体验】敏感人群自动追踪系统开发

感谢主办方提供的双目摄像头提供测试。本项目利用双目摄像头模组+LattePanda Delta 432+NCS2神经棒部署openvino做一个敏感...
发表于 09-26 14:46 0次 阅读
【大联大友尚安森美半导体感光芯片USB双目摄像头模组试用体验】敏感人群自动追踪系统开发

C语言固件中指针的使用方法

有两个与指针关联的值。第一个是存储在指针本身中的存储地址,第二个是存储在该存储地址中的数据。要修改存....
的头像 multisim 发表于 09-26 11:38 113次 阅读
C语言固件中指针的使用方法

SPI总线驱动的C语言源代码详细概述

本文档的主要内容详细介绍的是SPI总线驱动的C语言源代码详细概述。
的头像 Wildesbeast 发表于 09-26 11:36 166次 阅读
SPI总线驱动的C语言源代码详细概述

I2C总线驱动的C语言源程序详细说明

 i2c 总线上单片机系统中常用到的总线技术这里给大家介绍一个I2C总线驱动的C51语言源程序。
的头像 Wildesbeast 发表于 09-26 11:07 175次 阅读
I2C总线驱动的C语言源程序详细说明

c语言中一些花里胡哨的写法

转自:嵌入式Linux 我觉得这是一个送分题,奈何知乎人才太多了,给出了各种古怪的写法,如果是做项目....
的头像 strongerHuang 发表于 09-25 14:39 121次 阅读
c语言中一些花里胡哨的写法

TL431搭配光耦的传函技术资料说明

本文档的主要内容详细介绍的是TL431搭配光耦的传函技术资料说明。
发表于 09-24 17:49 48次 阅读
TL431搭配光耦的传函技术资料说明

Redis抢红包项目

业务流程分析 功能拆解 新建红包 在 DB、Redis 分别新增一条记录 抢红包(并发) 「使用技术....
的头像 数据分析与开发 发表于 09-24 15:09 92次 阅读
Redis抢红包项目

BP神经网络的概念

BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说....
的头像 新机器视觉 发表于 09-24 11:51 96次 阅读
BP神经网络的概念

如何学习单片机方法和步骤说明

学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而....
发表于 09-24 08:00 45次 阅读
如何学习单片机方法和步骤说明

单片机C语言模块化编程的实例说明

当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。你需要和你的小组成员分工合作,一起....
发表于 09-24 08:00 108次 阅读
单片机C语言模块化编程的实例说明

C语言的主要特征是什么

C语言不仅是IT的必修课,也是所有理工科、甚至所有专业的必修课。它具有简洁紧凑、灵活方便、适用范围大....
的头像 STM32嵌入式开发 发表于 09-23 11:13 96次 阅读
C语言的主要特征是什么

基于C语言实现的贪吃蛇小游戏

定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置。这样就将移动蛇身的操作转换为移动数组的操作,....
的头像 STM32嵌入式开发 发表于 09-23 11:10 68次 阅读
基于C语言实现的贪吃蛇小游戏

执行大量的for循环及嵌套,数组结果溢出

[code]     for(k=0;k
发表于 09-23 10:40 0次 阅读
执行大量的for循环及嵌套,数组结果溢出

ARM嵌入式学习知识图谱-C语言入门系列文章

想要做ARM开发,C语言绝对是重中之重,在这方面是是没有捷径可以走的,这篇文章为大家收集了论坛的优秀C语言初级文章,希望...
发表于 09-23 10:05 303次 阅读
ARM嵌入式学习知识图谱-C语言入门系列文章

单片机程序的编写方法

学习单片机最主要的是学习写程序的方法,程序的功能千变万化,是学不完的,只有掌握了一定方法,才能用这种....
发表于 09-22 17:17 249次 阅读
单片机程序的编写方法

HarmonyOS应用开发-API参考

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软...
发表于 09-22 15:14 101次 阅读
HarmonyOS应用开发-API参考

C语言内存操作有哪些陷进

如从stdin读取一个int变量时,scanf(“%d”, &val);是正确用法,若误写为scan....
的头像 嵌入式ARM 发表于 09-22 14:45 173次 阅读
C语言内存操作有哪些陷进

步进电机综合控制的C语言程序和工程文件免费下载

本文档的主要内容详细介绍的是步进电机综合控制的C语言程序和工程文件免费下载。
发表于 09-22 08:00 26次 阅读
步进电机综合控制的C语言程序和工程文件免费下载

字符串操作的全面总结

这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以....
的头像 玩转单片机 发表于 09-21 16:35 102次 阅读
字符串操作的全面总结

什么是嵌入式_如何入门和提高嵌入式

因为首先,嵌入式有不少组合名词,例如嵌入式系统,嵌入式软件,Linux嵌入式,Android嵌入式,....
发表于 09-21 15:00 175次 阅读
什么是嵌入式_如何入门和提高嵌入式

TIOBE已公布2020年9月的编程语言排行榜

TIOBE 每个月都会公布一次编程语言的排行榜,这份排行榜排名基于全球技术工程师、课程和第三方供应商....
的头像 玩转单片机 发表于 09-21 14:13 832次 阅读
TIOBE已公布2020年9月的编程语言排行榜

嵌入式C语言源代码优化方案(非编译器优化)

选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多....
的头像 嵌入式ARM 发表于 09-21 11:55 286次 阅读
嵌入式C语言源代码优化方案(非编译器优化)

C语言程序设计全套培训课件免费下载

本文档的主要内容详细介绍的是C语言程序设计全套培训课件免费下载包括了:第1章 C语言概述,第2章 程....
发表于 09-21 08:00 20次 阅读
C语言程序设计全套培训课件免费下载

100个经典的C语言程序免费下载

本文档的主要内容详细介绍的是100个经典的C语言程序免费下载。
发表于 09-21 08:00 47次 阅读
100个经典的C语言程序免费下载

如何使用C语言实现PID控制算法

最近两天在考虑一般控制算法的 C 语言实现问题,发现网络上尚没有一套完整的比较体系的讲解。于是总结了....
发表于 09-21 08:00 41次 阅读
如何使用C语言实现PID控制算法

Linux下如何编译C程序?

少量文件时可以使用上面方法编译。源码文件较多时,可借用make工具。make通过解析Makefile....
的头像 嵌入式ARM 发表于 09-20 10:56 204次 阅读
Linux下如何编译C程序?

浮点数在内存中的存储

浮点数在内存中的存储和整数不同,因为整数都可以转换为一一对应的二进制数据。而浮点数的存储是由符号位 ....
的头像 嵌入式ARM 发表于 09-20 10:52 119次 阅读
浮点数在内存中的存储

模块化的方法和注意事项

这一条概括了模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c文件,然后把该模块的接口函....
的头像 嵌入式ARM 发表于 09-20 10:37 257次 阅读
模块化的方法和注意事项

Keil C51是如何支持双数据指针,有哪些特别的要求

在8051体系中,数据指针DPTR作为一个特殊的16位寄存器,用于寻址64 KB的XDATA或COD....
的头像 牵手一起梦 发表于 09-19 16:47 257次 阅读
Keil C51是如何支持双数据指针,有哪些特别的要求

单片机电子时钟程序设计

把 DS1302 的底层操作封装为一个 DS1302.c 文件,对上层应用提供基本的实时时间的操作接....
的头像 倩倩 发表于 09-18 16:55 93次 阅读
单片机电子时钟程序设计

如何理解Web前端和后端的工作内容和区别?

Web前端和后端的区别是什么?如何区分?从前端和后端两者工作内容和负责项目是完全不同。后端:入门难深....
的头像 如意 发表于 09-18 16:11 149次 阅读
如何理解Web前端和后端的工作内容和区别?

C51语言编程基础教程之Keil µVision3的使用说明

单片机应用系统日趋复杂,对程序的可读性、升级与维护以及模块化要求越来越高,对软件编程要求也越来越高,....
发表于 09-17 17:49 68次 阅读
C51语言编程基础教程之Keil µVision3的使用说明

写出高效的嵌入式C程序

编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 ...
发表于 09-17 11:00 297次 阅读
写出高效的嵌入式C程序

C语言的入门学习50个实例设计资料说明

本文档的主要内容详细介绍的是C语言的入门学习50个实例设计资料说明。
发表于 09-17 08:00 30次 阅读
C语言的入门学习50个实例设计资料说明

python非常经典的笔记题和答案免费下载

sys.getrefcount( )函数可以获得对象的当前引用计数多数情况下,引用计数比你猜测得要大....
发表于 09-16 17:49 27次 阅读
python非常经典的笔记题和答案免费下载

python文件和目录的操作方法介绍和实例说明

这篇文章主要介绍了python 文件和目录的操作方法,简明总结了文件和目录操作中常用的模块、方法,并....
发表于 09-16 17:12 16次 阅读
python文件和目录的操作方法介绍和实例说明

python文件和目录的操作方法介绍和实例说明

这篇文章主要介绍了python 文件和目录的操作方法,简明总结了文件和目录操作中常用的模块、方法,并....
发表于 09-16 17:12 30次 阅读
python文件和目录的操作方法介绍和实例说明

STM8 C语言精品编程100例

发表于 09-16 15:53 226次 阅读
STM8 C语言精品编程100例