我正在为 Linux + AVR Arduino 项目创建软件。显然,整个工作在 Eclipse 中分为几个项目(我没有使用 Arduino IDE)。我想为所有这些项目使用常见的,主要是字符串的常量。我还必须腾出微控制器的 RAM,因此需要编译时常量。我如何最好地实施它?我的想法是为这些常量创建一个单独的、仅包含标题的项目。
使用:
class A {
public:
static const char * const STRING;
static const unsigned char BOOL;
};
还不够好,因为我希望能够像这样连接字符串常量:
class A {
public:
static const char * const STRING_PART1;
static const char * const STRING_PART2;
static const unsigned char BOOL;
};
const char * const A::STRING_PART1 = "PART1_";
//const char * const A::STRING_PART2 = A::STRING_PART1 + "PART2"; //obviously won't compile
//const char * const A::STRING_PART2 = strcat("PART2", A::STRING_PART1); //this is not compile-time
我也不想用define
。我想使用:
class A {
public:
static const std::string STRING_PART1;
static const std::string STRING_PART2;
}
它允许字符串连接并且是(AFAIK)编译时,但 std::string 在 avr 项目中不可用 - 或者我在这里错了,只是不知道如何使用它。
任何帮助表示赞赏。