C言語のtypeof演算子 質問する

C言語のtypeof演算子 質問する

C の typeof は本当に演算子ですか?
C にはポリモーフィズムがないので、実行時に何もすることはないと思います。つまり、typeof の答えはコンパイル時にわかります。(コンパイル時にわからない typeof の使用法は思いつきません。) したがって、演算子というよりは、コンパイル時のディレクティブであるように見えます。

typeof は (GCC で) 何らかの (プロセッサ) ランタイムを使用しますか?

ベストアンサー1

はコンパイラ拡張であるためtypeof、実際には定義はありませんが、C の伝統では演算子になります。たとえば、sizeof_Alignofも演算子と見なされます。

あなたは間違っています。C には、実行時にのみ決定される動的な型、つまり変数変更 (VM) 型があります。

size_t n = strtoull(argv[1], 0, 0);
double A[n][n];
typeof(A) B;

実行時にのみ決定できます。

2024 年の追加: C23typeofと同様のルールがsizeof適用されます。

おすすめ記事