次のコードに驚きました。
#include<stdio.h>
typedef int type;
int main( )
{
type type = 10;
printf( "%d", type );
}
これは成功し、プログラムの出力は 10 です。
しかし、以下のようにコードを少し変更すると、
#include<stdio.h>
typedef int type;
int main()
{
type type = 10;
float f = 10.9898;
int x;
x = (type) f;
printf( "%d, %d", type, x);
}
aCC コンパイラで:
「'type' は型として使用されていますが、型として定義されていません。」
g++ コンパイラで:
「エラー: 予期される `;' f」の前に
このパターンは変数の割り当て、式の評価などに関連している可能性があるため、コンパイラが2番目のケースでパターンを認識しなかったということですか?最初のケースでは、このパターンは変数を定義している間のみ使用されます。 .