の逆演算子はあり@encode
ますか?
たとえば、次のようにすると@encode(int)
、 が得られ"i"
ます。私はこれを行うことができるようにしたいと思います:@decode("i") myInt = 5;
これは可能ですか?これを処理するオペレーターは存在しますか?
の逆演算子はあり@encode
ますか?
たとえば、次のようにすると@encode(int)
、 が得られ"i"
ます。私はこれを行うことができるようにしたいと思います:@decode("i") myInt = 5;
これは可能ですか?これを処理するオペレーターは存在しますか?
No.@encode
は型を取り、C では型を返すことはできません。(typeof()
演算子は GNU 拡張機能ですが、C 文字列を使用しないため、希望することはできません。
2 つのオプションがあります。1: コードを再設計します。これが必要な場合は、おそらく設計上の問題があります。
2 つ目は、動的メモリ割り当てを使用して、型文字列を受け取り、それに応じてメモリを割り当てる独自の関数を作成することです。
うーん、ええ..そこには間違いなく...
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