目前我在Arduino上编写C ++代码。在一个例子中,我找到了一个表达式
Serial.print(F("Disconnected from central:"));
很明显,这个语句用于将字符串发送到串口,但为什么它使用F(字符串)而不是直接使用字符串?
我尝试谷歌但没有结果。如果有人知道,我将不胜感激。
答案 0 :(得分:4)
这个宏是特定于Arduino的,它不是" C ++"因此。
它将字符串放在闪存中,以节省RAM。
这意味着程序运行时无法修改字符串。
目前的一个定义是:
#define F(slit) (reinterpret_cast<const __FlashStringHelper *>(PSTR(slit)))
答案 1 :(得分:0)
SELECT STR_TO_DATE('Sep 22, 2016','%M %d,%Y');
是功能最强大的功能之一,已添加F()
1.0
版本。我一直在混合使用IDE
和macro
这两个词。 function
真的不是F()
,它是function
,住在#define macro
WString.h
这是一个宏,用于在#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
而不是strings
中存储flash memory
。