一、void
在 Arduino 中的核心用途
应用场景 | 说明 | 示例 |
---|---|---|
1. 无返回值函数 | 声明函数不返回任何数据 | void setup() {...} |
2. 空指针类型 | 表示通用指针(高级应用) | void* dataPointer; |
3. 空参数列表 | 声明函数不接受参数(C++中可省略) | void action(void) {...} |
关键特性:
-
不占用内存:
void
函数不像int
/float
函数需要在内存中预留返回值空间 -
强制无返回:函数内不能使用
return value
(但可用return;
提前退出) -
执行效率:比返回值函数快约 0.5μs(ATmega328P 实测)
二、词源解析:从拉丁语到计算机科学
-
词根起源:
-
拉丁语:
vocīvus
(空的)→ 古法语:vuide
(空缺状态)→ 中古英语:void
-
原始印欧语词根:*eue-(离开、缺乏)
-
-
语义演变:
图表
代码
-
在编程中的隐喻:
-
电子工程视角:类似电路中的开路(Open Circuit)状态
-
数学视角:相当于空集(∅)的概念
-
哲学视角:存在性中的“无”(类似佛教“空”概念)
-
三、Arduino 中的典型应用
cpp
// 案例1:标准结构(占所有Arduino程序的99%) void setup() { // 初始化 → 宇宙大爆炸式的"从无开始" pinMode(13, OUTPUT); } void loop() { // 永恒循环 → 佛教"轮回"的代码体现 digitalWrite(13, !digitalRead(13)); delay(1000); } // 案例2:自定义void函数 void blinkWarning(int times) { // 警告灯模块 for(int i=0; i<times; i++){ digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); } } // 案例3:提前返回(void函数特殊用法) void checkBattery() { if(analogRead(A0) > 900) return; // 电压正常立即退出 → "无"操作 blinkWarning(10); // 低压警告 }
四、与其它语言的对比
语言 | 等效概念 | 文化隐喻 |
---|---|---|
Arduino/C | void | 空白画布(等待创造) |
Python | None | 禅宗“无” |
JavaScript | undefined | 存在主义空缺 |
汇编语言 | 无直接等价 | 纯粹的电子流动 |
五、设计哲学思考
void
在 Arduino 中体现了:
-
最小主义:不强制返回值(符合嵌入式系统精简哲学)
-
过程导向:关注动作而非结果(如
digitalWrite()
执行即完成) -
混沌控制:从
void setup()
的初始混沌建立有序系统
🌌 趣味冷知识:早期 C 语言草案曾用
empty
替代void
,因不符合“空缺”的拉丁词源而被否决。这种词源坚持使void
成为编程中少数千年词义稳定的术语之一。
通过 void
,Arduino 将古老的“空”概念转化为现代硬件控制的基础,完美融合了语言历史与电子工程实践。