GNUC C では、 を使用できますtypeof(expression)
。内部に副作用のある式を使用することは合法です。たとえば、次の C コードを使用できます。
int x = 0;
typeof(x++) y;
この場合、副作用は無視され、その後も x はゼロのままです (型はコンパイル時のみのものであるため、これは理にかなっています)。
ただし、GCC のドキュメントには次のように記載されています。
typeof のオペランドは、それが可変的に変更された型の式またはそのような型の名前である場合にのみ、その副作用について評価されます。
この文はどういう意味ですか? typeof
副作用で書いて、実際に実行時に副作用を実行させることは本当に可能ですか? 私にとって、この文はこれを示しているようです。