当前位置:首页 > 模拟 > 模拟
[导读]C\\C++语言是国际上广泛流行的计算机高级语言。绝大多数硬件开发,均使用C/C++语言,Arduino也不例外。使用Arduino,需要有一定的C\\C++基础,由于篇幅有限,本书仅对C\\C++语言基础进行简单的介绍。此后章节中我们还会穿插介绍一些特殊用法及编程技巧。

1.1 C\C++语言基础

C\C++语言是国际上广泛流行的计算机高级语言。绝大多数硬件开发,均使用C/C++语言,Arduino也不例外。使用Arduino,需要有一定的C\C++基础,由于篇幅有限,本书仅对C\C++语言基础进行简单的介绍。此后章节中我们还会穿插介绍一些特殊用法及编程技巧。

1.1

1.1.1 数据类型

在C\C++语言程序中,对所有的数据都必须指定其数据类型。数据又有常量和变量之分。

需要注意的是,Genuino 101与AVR做核心的Arduino中的部分数据类型所占用的空间和取值范围有所不同。

变量

在程序中数值可变的量称为变量。其定义方法如下

  
l  类型 变量名;
  

例如,定义一个整型变量i:

  
int i;
  

我们可以在定义时为其赋值,也可以定义后,对其赋值,例如:

  
int i;
  
i=95;
  

  
int i=95;
  

两者是等效的。

常量

在程序运行过程中,其值不能改变的量,称为常量。常量可以是字符,也可以是数字,通常使用语句

  
const 类型 常量名 = 常量值
  

定义常量。

还可以用宏定义来达到相同的目的。语句如下:

  
#define 宏名 值
  

如在Arduino核心库中已定义的常数PI,即是使用

  
#define PI  3.1415926535897932384626433832795
  

定义的。

l 整型

整型即整数类型。Genuino 101可使用的整型类型及取值范围如下

表 2‑1 整型与取值范围

  
类型
  
取值范围
说明
int
–2,147,483,648                                                                       2,147,483,647
  
(–      – 1)
整型
unsigned int
0     4,294,967,295
  
(0       – 1)
无符号整型
long
–2,147,483,648      2,147,483,647
  
(–      – 1)
长整型
unsigned long
0     4,294,967,295
  
(0       – 1)
无符号长整型
short
–32,768     32,767
  
(–      – 1)
短整型

l 浮点型

浮点数也就是常说的实数。在Arduino中有float和double两种浮点类型,在Genuino 101中,float类型占用4个字节(32位)内存空间,double类型占用8个字节(64位)内存空间。

浮点型数据的运算,速度较慢且可能有精度丢失。通常我们会把浮点型转换为整型来处理相关运算。如9.8cm,我们通常把换算为98mm来计算。

l 字符型

字符型,即char类型,也是一种整形,占用一个字节内存空间,常用于存储字符变量。存储字符时,字符需要用单引号引用,如

  
char col=’C’;
  

字符都是以整数形式储存在char类型变量中的,数值与字符的对应关系,请参照附录中ASCII码表。

l 布尔型

布尔型变量,即boolean。它的值只有两个:false(假)和true(真)。boolean会占用1个字节的内存空间。

1.1.2 运算符与表达式

C\C++语言中有多种类型的运算符,常见运算符见表2-2:

表 2‑2 常见C\C++运算符

  
运算符类型
  
运算符
说明
算术运算符
=
赋值
+
-
*
/
%
取模
比较运算符
==
等于
!=
不等于
<
小于
>
大于
<=
小于或等于
>=
大于或等于
逻辑运算符
&&
逻辑与运算
||
逻辑或运算
!
逻辑非运算
复合运算
++
自加
--
自减
+=
复合加
-=
复合减

1.1.3表达式

通过运算符将运算对象连接起来的式子,我们称之为表达式。如

  
5+3、a-b、1<9等。
  

1.1.4数组

数组是由一组相同数据类型的数据构成的集合。数组概念的引入,使得在处理多个相同类型的数据时,程序更加清晰和简洁。

其定义方式如下:

  
l  数据类型  数组名称[数组元素个数];
  

如,定义一个有5个int型元素的数组:

  
int a[5];
  

如果要访问一个数组中的某一元素,需要使用

  
l  数组名称[下标]
  

需要注意的是数组下标是从0开始编号的。如,将数组a中的第1个元素赋值为1:

  
a[0]=1;
  

你可以使用以上方法对数组赋值,也可以在数组定义时,对数组进行赋值。如:

  
int a[5]={1,2,3,4,5};
  

  
int a[5];
  
a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
  

是等效的。

1.1.5 字符串

字符串的定义方式有两种,一种是以字符型数组方式定义,另一种是使用String类型定义。

  
l  char字符串名称[字符个数];
  

使用字符型数组的方式定义,使用方法和数组一致,有多少个字符便占用多少个字节的存储空间。

大多数情况下,我们使用String类型来定义字符串,该类型中提供一些操作字符串的成员函数,使得字符串使用起来更为灵活。

  
l  String  字符串名称;
  

  
String   abc;
  

即可定义一个名为abc的字符串。你可以在定义时为其赋值,或在定义后为其赋值,如

  
String   abc;
  
abc = “Genuino 101”;
  

  
String   abc = “Genuino 101”;
  

是等效的。

相较于数组形式的定义方法,使用String类型定义字符串会占用更多的存储空间。

1.1.6注释

/*与*/之间的内容,及 // 之后的内容均为程序注释,使用它可以更好的管理代码。注释不会被编译到程序中,不影响程序的运行。

为程序添加注释的方法有两种:

单行注释:

  
// 注释内容
  

多行注释:

  
/*
  
注释内容1
  
注释内容2
  
……
  
*/
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

柏林2025年9月9日 /美通社/ -- 2025年9月5日,纳斯达克上市公司优克联集团(NASDAQ: UCL)旗下全球互联品牌GlocalMe,正式亮相柏林国际消费电子展(IFA 2025),重磅推出融合企...

关键字: LOCAL LM BSP 移动网络

深圳2025年9月9日 /美通社/ -- PART 01活动背景 当技术的锋芒刺穿行业壁垒,万物互联的生态正重塑产业疆域。2025年,物联网产业迈入 "破界创造"与"共生进化" 的裂变时代——AI大模型消融感知边界,...

关键字: BSP 模型 微信 AIOT

"出海无界 商机无限"助力企业构建全球竞争力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由领先商业管理媒体世界经理人携手环球资源联合主办、深圳•前海出海e站通协办的...

关键字: 解码 供应链 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林当地时间9月6日,在2025德国柏林国际电子消费品展览会(International Funkausstellung...

关键字: 扫地机器人 耳机 PEN BSP

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移远通信宣布,其自研蓝牙协议栈DynaBlue率先通过蓝牙技术联盟(SIG)BQB 6.1标准认证。作为移远深耕短距离通信...

关键字: 蓝牙协议栈 移远通信 COM BSP

上海2025年9月9日 /美通社/ -- 为全面落实党中央、国务院和上海市委、市政府关于加快发展人力资源服务业的决策部署,更好发挥人力资源服务业赋能百业作用,8月29日,以"AI智领 HR智链 静候你来&quo...

关键字: 智能体 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付与一汽出行达成合作,为其自主研发的"旗驭车管"车辆运营管理平台提供全流程支付通道及技术支持。此次合作不仅提升了平台对百余家企业客户的运营管理效率...

关键字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制药(PharmaEngine, Inc.)发现的新一代PRMT5抑制剂PEP0...

关键字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶
关闭