扩展语法
; 分号
用于结束语句。
例子:
int a = 13;
{} 大括号
{}大括号是C语言的重要组成部分。任何一个函数至少有一个{}大括号,在循环嵌套中也需要。
一个左大括号'{'后面必须紧跟着一个右大括号'}'。这通常被称为平衡大括号。Arduino的IDE(集成开发环境)有检测大括号的平衡功能。只需要单击一个大括号,跟它平衡的另外一个大括号就会高亮显示出来。目前此功能稍微有些错误,因为IDE会经常发现(不正确的)已被'注释掉'的文本中的'{}'大括号。
在编程的时候,使用{}大括号时要养成一个良好的习惯,当输入一个左'{'大括号 后,要立即输入一个右'}'大括号,接着在大括号之间点击回车,才来开始输入语句。这样会减少程序的一些不必要的出错。
大括号的主要用途
功能:
void myfunction(数据类型参数){ statements(s) }
循环体:
while (布尔值) { statement(s) } do { statement(s) } while (布尔值); For(初始化;判断条件;递增或递减) { statement(s) }
条件语句:
if (布尔值) { statement(s) } else if (布尔值) { statement(s) } else { statement(s) }
// 单行注释
注释是用来告诉自己或别人程序的工作方式。他们在编译时会被忽略掉,所以不会占用ATMEGA芯片的任何空间。
注释的唯一目的是帮助你理解(或记忆)你的程序是如何工作,或者是告诉别人。有两种不同的标记号来注释:
例子:
x = 5; // 这是一个单行注释。斜线之后的任何事情都是注释 // 直到行末 /* 这是多行注释-一般用它来注释掉代码块 if (gwb == 0){ // 单行注释可以出现在多行注释里面 x = 3; /* 但不能是其他多行注释-这是无效的 */ } // 别忘了“关闭”的注释-他们必须是平衡的 */
/**/ 多行注释
注释是用来告诉自己或别人程序的工作方式。他们在编译时会被忽略掉,所以不会占用ATMEGA芯片的任何空间。
注释的唯一目的是帮助你理解(或记忆)你的程序是如何工作,或者是告诉别人。有两种不同的标记号来注释:
例子:
x = 5; // 这是一个单行注释。斜线之后的任何事情都是注释 // 直到行末 /* 这是多行注释-一般用它来注释掉代码块 if (gwb == 0){ // 单行注释可以出现在多行注释里面 x = 3; /* 但不能是其他多行注释-这是无效的 */ } // 别忘了“关闭”的注释-他们必须是平衡的 */
#define 宏定义
#define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。所谓预处理是指在进行编译之前所作的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
Arduino的定义与C语言的定义相同:
语法:
#define constantName value
例子:
#define ledPin 3 // 程序在编译时,任何提及到3的都可用ledPin来代替。
#include 头文件定义
通知预处理器将已指定文件的内容当作它们在源程序中指令出现处出现的方式处理。
需要注意的是#include和#define一样,不需要分号结束符。如果出现了分号结束符,程序就会出错。
例子:
这个例子包含了一个库,用于将数据保存在flash中而不是保存在ram中。
#include <avr/pgmspace.h> prog_uint16_t myConstants[] PROGMEM = {0, 21140, 702 , 9128, 0, 25764, 8456, 0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};