私はC99で組み込みアプリケーションを開発していますが、プロジェクトには次のように定義された整数定数が含まれています。
#define LEVEL1 0x0000
#define LEVEL2 (LEVEL1 + 1)
その後、ロギングの目的でこれらの値を追跡することが有用になったので、マクロを使用して、上記の評価されたバージョンから文字列リテラルを作成したいと思います。例えば:
strncpy(str, STRING(LEVEL2), len);
理想的には
strncpy(str, "0x0001", len);
あるいは
strncpy(str, "0001", len);
(この質問で示唆されているように)#演算子を使用して2段階のマクロを使用すると、ほとんど機能します。に評価します
strncpy(str, "(LEVEL1 + 1)", len);
ランタイム関数の使用を避けたいので、マクロソリューションを試みます。提案?