首页 > 解决方案 > avr-gcc 如何将字符串放入程序中?

问题描述

我有疑问如何将字符串放入程序中?这是示例程序。

void ParAdd(uint8_t type, const char *ParName){
    #do something meaningful here
}

int main (void){
    ParAdd(11,  "Name1");
    ParAdd(22,  "Name2");
    ParAdd(30,  "Name3");
}

有没有办法在函数调用中将字符串参数声明为 PROGMEM?我知道“经典”方式,例如:

char string_1[] PROGMEM = "String 1";
char string_2[] PROGMEM = "String 2";

..但就我而言,如果可能的话,我更喜欢单行。示例程序是 meninglles,但在实际情况下,有许多参数和许多“ParAdd”调用。但找不到使用类似的解决方案:

ParAdd(11,  (PROGMEM) "Name1");

有人知道解决方案吗?arduino中的F()宏之类的东西?

标签: avravr-gccprogmem

解决方案


...因为解决方案如此简单而变得愚蠢。

ParAdd(11,  PSTR("Name1"));

是解决方案。


推荐阅读