目前我正在 Arduino 上编写 C++ 代码。在一个例子中,我找到了一个表达式
Serial.print(F("Disconnected from central:"));
Run Code Online (Sandbox Code Playgroud)
很明显,这个语句是用来向串口发送字符串的,但是为什么它使用F(string)而不是直接使用字符串呢?
我尝试用谷歌搜索但没有结果。如果有人知道,我将不胜感激。
这个宏是特定于 Arduino 的,它不是“C++”。
它将字符串放在闪存中,以节省 RAM。
这意味着程序运行时不能修改字符串。
目前的一种定义是:
#define F(slit) (reinterpret_cast<const __FlashStringHelper *>(PSTR(slit)))
Run Code Online (Sandbox Code Playgroud)