0

C では、実行時に変数名にアクセスしたいと考えています。たとえば、構造 abc があります

struct alpha
{
    int aaa1,
    int aaa2,
    char bbb1
};

struct alpha alp;
char *ptr_alpha =&alp;

次のような表現を使用できますか

if (alpha element1 name == "aaa1")
{
    do this;
}
else
{
    do that;
}
4

3 に答える 3

3

実行時に変数名にアクセスしても意味がありません。すべての初心者は、ある時点でこのアイデアを思いつきますが、それは「ボンネットの下」で何が起こっているのかを理解していないことが原因です。変数名、関数名、型などの識別子は、ソース コードにのみ存在します。彼らはプログラマーを助けるためにそこにいます。コンパイルされたバイナリには、識別子の痕跡は残っていません。

達成しようとするものに使用する必要があるさまざまな言語メカニズムがあります: 列挙型、ポインター、関数ポインターなど。あなたの特定のケースに関しては、あなたが達成しようとしていることについての情報が少なすぎて、それを解決する方法について提案することができません.

于 2013-10-07T09:41:30.580 に答える