33This Arduino library simplifies the definition and use of Arduino flash-based
44(PROGMMEM) global string constants. It supports both ` C ` and ` C++ ` style coding.
55
6- C Example:
6+ API docs are in ` FlashStringTable.h ` .
7+
8+ ## C Example:
79
810``` c
911#include < Arduino.h>
1012#include < FlashStringTable.h>
13+
1114BEGIN_FLASH_STRING_TABLE (myFlashStringTable)
1215 ADD_FLASH_STRING("1")
1316 ADD_FLASH_STRING("second")
1417 ADD_FLASH_STRING("third")
1518END_FLASH_STRING_TABLE()
16- void Setup() {
19+
20+ void setup() {
1721 // NOTE: Call this only once. It scans the string table in flash and
1822 // assigns pointers to myFlashStringTable's elements. It uses malloc()
1923 // to allocated myFlashStringTable[ ] .
@@ -24,9 +28,12 @@ void Setup() {
2428 Serial.println(myFlashStringTable[ 1] );
2529}
2630
27- void loop() {}
31+ void loop() {
32+
33+ }
2834```
29- C++ (class-based) example:
35+
36+ ## C++ (class-based) example:
3037
3138```c++
3239#include <Arduino.h>
@@ -50,29 +57,30 @@ class Piggy : public Printable {
5057 StringTable strings;
5158};
5259
53- void startup () {
60+ void setup () {
5461 while (!Serial && !Serial.available()) {}
5562
5663 Piggy piggy;
5764
5865 char sz[256];
59- sprintf_p (sz, F ("Piggy has %d strings"), piggy.strings.getNumStrings());
66+ sprintf_P (sz, PSTR ("Piggy has %d strings"), piggy.strings.getNumStrings());
6067 Serial.println(sz);
6168
6269
63- Serial.print(F ("Piggy's printTo() says: "));
70+ Serial.print(PSTR ("Piggy's printTo() says: "));
6471 Serial.println(piggy);
6572
66- Serial.print(F ("Piggy's strings: "));
73+ Serial.print(PSTR ("Piggy's strings: "));
6774 for (uint16_t i = 0; i < piggy.strings.getNumStrings(); i ++){
68- sprintf_p (sz, F ("%d = %s, "), i, piggy.strings.getString(i));
75+ sprintf_P (sz, PSTR ("%d = %s, "), i, piggy.strings.getString(i));
6976 Serial.print(sz);
7077 }
71- Serial.println(F ("Done!"));
78+ Serial.println(PSTR ("Done!"));
7279}
7380
74- void loop() {}
81+ void loop() {
7582
83+ }
7684```
7785
7886
0 commit comments