0

私はいくつかのマクロを持っていますKEY_*。それらをすべて外部変数として定義したいのですが、数と名前は異なる場合があります。

file1.h:

#define KEY_FOO 200
...
#define KEY_ASDFG 423

プリプロセッサ後のfile2.c:

#include <file1.h>
// Something like this should be generated by macros or so, but should not hardcode the names (except KEY_)
extern int key_foo; int key_foo = 200;
...
extern int key_asdfg; int key_asdfg = 423;

FOOこのように機能し、 /で呼び出す必要のない1つのメタマクロ/何かを作成できますか(そしてどのように)ASDFG

4

1 に答える 1

1

Cプリプロセッサだけを使用してこれを行うことはできません。

少なくとも、トークンを構成文字に分解する必要があり、それKEY_FOOを行うためのプリプロセッサ機能はありません。

sedやperlで簡単に実行できるはずです。あるいは、この変換を実行するCプログラムを作成することもできますが、プリプロセッサで実行することはできません。

于 2013-02-23T20:38:14.600 に答える