avr - 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()宏之类的东西?
解决方案
...因为解决方案如此简单而变得愚蠢。
ParAdd(11, PSTR("Name1"));
是解决方案。
推荐阅读
- php - 我如何从数据库中删除数据,除了最后 24 小时 UNIX 时间格式
- javascript - js window.matchMedia 返回错误的结果
- python - Django - 通过 Ajax 发布 jQuery 字典在 views.py 中打印 None
- java - Apache-POI 在 Excel 中设置值,但另一个单元格的公式无法使用该值,直到我在处理条中手动按 enter
- angular - Angular:如何在动态组件中使用共享模块?
- php - 按自定义字段对管理列进行排序未按预期工作
- soap - 使用 Sabre soap api 访问 pnrs 列表并从队列中删除
- c# - 在 post 方法中初始化新列表时,下拉列表为空
- angular - 我在输入中绑定 ngModel 时出错
- java - 有没有办法在appium中捕获全屏截图