Tau*_*das 12 c++ string arduino
我一直在为我的项目编写一个库(现在我正在使用Arduino).我string
遇到的问题是在C++和Arduino中有所不同.
也就是说,我希望我的图书馆独立于Arduino,所以我正在使用#include <string>
并随后宣布string s;
.但是在Arduino中,字符串由Arduino定义并声明String s2
.
当我将我的库包含到草图中时,我会error: string: No such file or directory
尝试包含C++字符串库(#include <string>
).
有没有办法让Arduino使用C++字符串库,或者在编译时将字符串转换为Arduino字符串?
Vin*_*ren 10
几件事:
char *
指向一组字符.std::string
库的源代码.做一个#include <string>
是不够的:你还必须为AVR平台编译字符串库.new
和delete
未实现.此外,std::string
实现可能还需要其他东西,因此需要管理很多依赖项,或者Arduino的代码源大小太大.对于像Arduino这样的AVR微控制器,有一些经典的字符串工具的实现,但是对于C风格的字符串,它们是以程序方式(而不是以面向对象的方式)完成的.例如,对于AVR-libc中使用GCC编译来了,你可以在这里看到的功能列表:
AVR-libc的string.h中
你甚至可以历久弥新printf
:AVR-libc的stdio.h中
如果在代码中添加好的头文件,可以将它们与Arduino一起使用,但要注意代码的大小!只需使用printf
就可以将大小增加几千字节,这对于微控制器来说可能是巨大的,具体取决于您的需求.
总而言之,在我看来,唯一可移植的方法是使用char *
字符串,http://arduino.cc/en/Reference/String
归档时间: |
|
查看次数: |
16436 次 |
最近记录: |