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) コンパイル時ですが、avr プロジェクトでは std::string を使用できません。または、ここで間違っていて、使用方法がわかりません。
どんな助けでも感謝します。