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
適用されます。