用C语言开发Arduino
1.认识注释
上期分享中,我们打开了【Blink】代码。这些代码允许我们控制Arduino板上的LED小灯每秒钟亮灭一次。
但是,首先出现的是灰色部分代码又是什么呢?这部分被/* 和 */ 所包围,属于程序中的注释。
灰色部分是注释
注释并不会对程序的执行产生任何影响,事实上,我们在上传程序的时候,IDE要先将代码进行"编译","编译"的过程是将代码从人类认识的语言“翻译”成计算机或者说Arduino认识的语言。
注:Arduino使用avr-gcc编译器,这是一款将GCC(用于编译C、C++等)移植到AVR(一种用于电气生产领域的精简指令集高速单片机)的版本。
AVR
在翻译的过程中,注释会被忽略掉。所以无论你在注释里面写了什么,计算机都不会知道。
但注释对于编程还是相当重要的,注释的存在主要是给编程者看的,它提示编程者一段代码的含义,或者使用条件等等。
在我们用C语言为Arduino编写代码的过程中,注释主要有两种,一种是前面我们看到的由/*和*/组成的注释,这种注释叫多行注释,多行注释中允许有换行存在。
还有一种注释叫单行注释,即在注释内容前面加// 这种注释只适用于一行,不能有换行。
单行注释
注:多行注释适用于需要较多文字描述的场合,单行注释多适用于提示之类的场合,使用哪种注释根据开发者的需要决定。
2.setup和loop
除了灰色的注释部分,程序中还有两段代码,我们称之为setup函数和loop函数。
setup函数
loop函数
所谓的函数就是执行特定功能的代码段,对于函数的具体讲解我们放在后面。
这里我们先知道setup和loop分别是两段函数的函数名,其作用范围是由一对花括号界定的。
注:setup在英文中有设置的意思,loop是回路,环的意思。
这两段函数执行的功能非常特殊,所有的Arduino程序一定要有这两段函数。setup函数用于Arduino的初始化工作,Arduino控制板上电运行后,setup会首先执行函数体内的程序指令,并且仅执行一次。
当setup函数完成初始化工作后,loop函数就会开始执行,loop函数会在整个Arduino控制板运行期间反复执行,直到控制板断电关闭,所以大部分的程序指令我们都会交由loop函数去执行。
3.语句
细心的朋友可能会发现,每条程序指令的结尾处都有一个分号(;),这样以分号结尾的,执行某一功能的代码我们称之为语句。
用分号作结束
就像我们人类语言的一句话一样,人类语言是用句号(。)表示一段有意义的话,而C语言则是用分号表示“一句话”。
没有结束的话不能称之为语句
注:使用分号是因为我们在敲击键盘的过程中右手小拇指正好处于分号的位置
4.代码格式
在“话”与“话”或者说“语句”与“语句”之间,不一定要有换行。比如我们可以将loop函数中的四条语句合并在一行也是可以的。
写在1行中的4条程序语句
在IDE中,空格和换行都没有任何的实际的功能,源代码经过编译后,所有的空格和换行都会被忽略。就像之前我们讨论过的“注释”一样,使用空格和换行的目的是为了方便人们阅读和理解代码的。
一个良好的代码书写习惯会让开发效率大大提高,所以我们会在语句间添加换行。换行后,再进行缩进。
注:缩进一般使用"Tab"键,就是左手小拇指斜上方的那个键,在Arduino的IDE中,一个"Tab"键相当于2个空格。
不同的编码者可能拥有不同的换行和缩进风格,比如有的人喜欢花括号独占一行,或者缩进用4个空格等。其实都无所谓,只要秉持一个原则,就是方便代码的阅读和理解即可。
5.结束语
本期分享我们讨论了程序的注释以及两个重要的函数块(setup和loop)的功能,并且认识了程序中“语句”的概念,对一个良好的编码格式有了初步的了解。下期,我们会具体讨论这些语句都做了哪些工作。
领取专属 10元无门槛券
私享最新 技术干货