VC编译器与GCC不兼容处

偶然被同学问到的,记下来吧。

老师给的程序源码使用VC写的,而在VC下面,使用

typedef struct         {
    double coef;            
    int exp;           
} PolyArray[MAX];

确实是一个比较纠结的定义。

调用为

void CreateListR(PolyNode *&L,PolyArray a,int n)

代码在VC下不知道会不会有问题[没试过,不过是老师写的,应该问题不大]。

换到DEV或者CodeB下面就会报错哦。

non-local function `void CreateListR(PolyNode*&, <anonymous struct>*, int)’ uses anonymous type

琢磨了一下,估计是编译器不同的问题,然后搜了下,发现可以用PolyArray *a代替PolyArray a,

那样代码写的就非常纠结了…..

试了一下,原来把他规范化的最好办法,就是

typedef struct           
{
    double coef;           
    int exp;           
} PolyArray2;
typedef PolyArray2 PolyArray[MAX];

– -, 是不是很囧…

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注