typedef使用不当

问题描述

我正在Windows操作系统下使用C ++编译器Embarcadero。

代码必须没有错误,但是我收到此错误消息:

typedef'pt'的不正确使用

typedef struct{
    AnsiString x,y;
}pt;

pt zero(void){
    return (pt){
        INFINITY,INFINITY
    };
}

我在线搜索并在Embarcadero网站上阅读:

您的源文件使用typedef符号,其中变量应出现在表达式中。 检查符号的声明和可能的拼写错误

我的想法是正确的,尽管我猜测pt可能以某种方式保留了,但是我将变量名更改为bbkpt,仍然是相同的错误

上面的代码是全局定义的。

有什么想法,如果不正确怎么解决

解决方法

复合文字是标准C ++中没有的C功能。您使用的C ++编译器不支持它们,至少不支持您使用的设置。