1

文字列によって名前が付けられた値を持つ列挙型を作成したい文字列のファイルがあります。たとえば、リストは次のとおりです。

"a" "b" "c" "d" ...

このような列挙型を取得したい

enum SomeEnum { a, b, c, d };

ありがとう。

4

3 に答える 3

2

X-Macros を使用できます。その場合は、列挙型/文字列を に配置するだけで済みますmyfile.h

myFile.h

#ifndef ENUM_CONVERT
#define ENUM_CONVERT(val)  val
#define ENUM_HEADER enum SomeEnum
#endif

ENUM_HEADER
{
ENUM_CONVERT(a),
ENUM_CONVERT(b),
ENUM_CONVERT(c),
ENUM_CONVERT(d)
};

myFile.c

#include "myFile.h"  // This declares the enum
#define MKSTR(a)           #a
#define ENUM_CONVERT(val)  MKSTR(val)
#define ENUM_HEADER        char *myStrList[]=
#include "myFile.h"  // This defines the stringList
于 2012-06-14T09:02:05.963 に答える
2

一般的なスクリプト言語 (perl、python、tcl) のいずれかを使用して、ファイルを解析し、好きな列挙型を生成することをお勧めします。

于 2012-06-14T08:26:15.887 に答える
0

cで文字列を変数に変換するのは難しい

于 2012-06-14T08:27:51.493 に答える