#include <stdio.h>
int main(void)
{
double a=0;
typeof(a=3.0) b=0.0;
printf("Go to hell, C!\n");
}
int main(void)
{
double a=0;
typeof(a=3.0) b=0.0;
int *s=b;
a=0;
if(a=1)
printf("Go to hell, C!\n");
}
}
按照C语言标准,赋值语句是有类型和数值的。类型为左面的操作数类型,数值为赋值结束后左面的数值。上面的代码明显是错误的,我用gcc报错来告诉我b的类型。报错:用‘double’初始化‘int *’时类型不兼容。b是double 类型的。
修改代码使之可以运行,结果为:Go to hell, C!