0
char s[10]="welcome";

たとえば&s、タイプはchar(*)[2]です。このような変数の型を見つけるためにCにとにかくありますか?

4

2 に答える 2

1

ほとんどの* コンパイラはtypeof、非常に便利な演算子をサポートしています。これは基本的に C++ の と同等decltypeであるため、文字列などの便利なものに変換するには、おそらくマクロが必要になるでしょう。

#define _STRINGIFY(arg) #arg
#define STRINGIFY(arg) _STRINGIFY(arg)

*: ほとんどのコンパイラは clang、GCC、そして MSVC だと思います。

于 2013-05-31T02:08:45.907 に答える
0

コンパイラは知っていますが、コンパイルが完了するとその情報は破棄されます。どういうわけか、実行時に変数の型のテキスト記述を求めることはできません。文字列「char(*)[2]」を返すメソッドはありません

これを行うには、C コンパイラと統合するか、C コンパイラを作成して実行時にコードを実行する必要があります。

于 2013-05-31T00:53:47.693 に答える