4

の逆演算子はあり@encodeますか?

たとえば、次のようにすると@encode(int)、 が得られ"i"ます。私はこれを行うことができるようにしたいと思います:@decode("i") myInt = 5;

これは可能ですか?これを処理するオペレーターは存在しますか?

4

3 に答える 3

7

No.@encodeは型を取り、C では型を返すことはできません。(typeof()演算子は GNU 拡張機能ですが、C 文字列を使用しないため、希望することはできません。

2 つのオプションがあります。1: コードを再設計します。これが必要な場合は、おそらく設計上の問題があります。

2 つ目は、動的メモリ割り当てを使用して、型文字列を受け取り、それに応じてメモリを割り当てる独自の関数を作成することです。

于 2012-12-16T18:03:36.090 に答える
-1

うーん、ええ..そこには間違いなく...

           int five = 5;
__typeof(five) four = 4;

printf("@encode(int):%s\n", @encode(int));
printf("typeof(five):%s\n", @encode(__typeof(five)));
printf("typeof(four):%s\n", @encode(__typeof(four)));

➜</p>

@encode(int):i

typeof(five):i

typeof(four):i

于 2014-06-16T03:08:35.377 に答える