C ++中F(字符串)的含义是什么?

时间:2016-09-23 10:03:35

标签: c++ arduino

目前我在Arduino上编写C ++代码。在一个例子中,我找到了一个表达式

Serial.print(F("Disconnected from central:"));

很明显,这个语句用于将字符串发送到串口,但为什么它使用F(字符串)而不是直接使用字符串?

我尝试谷歌但没有结果。如果有人知道,我将不胜感激。

2 个答案:

答案 0 :(得分:4)

这个宏是特定于Arduino的,它不是" C ++"因此。

它将字符串放在闪存中,以节省RAM。

这意味着程序运行时无法修改字符串。

目前的一个定义是:

#define F(slit) (reinterpret_cast<const __FlashStringHelper *>(PSTR(slit)))

See the source code for more

答案 1 :(得分:0)

SELECT STR_TO_DATE('Sep 22, 2016','%M %d,%Y'); 是功能最强大的功能之一,已添加F() 1.0版本。我一直在混合使用IDEmacro这两个词。 function真的不是F(),它是function,住在#define macro

WString.h

这是一个宏,用于在#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal))) 而不是strings中存储flash memory