0

所以我定义了一个结构

struct PAIR{
    int a;
    int b;
    int dist;
};

然后在一个函数中我尝试定义 Pair * vec; 它给了我

optim.cpp:97:4: error: ‘Pair’ was not declared in this scope
optim.cpp:97:10: error: ‘vec’ was not declared in this scope

有什么问题?

4

3 回答 3

2

C 区分大小写,因此您应该使用 PAIR 而不是 Pair。

我不确定你使用的是哪个编译器,gcc 还是 g++?如果您使用 g++(因为您显示的文件是 optim.cpp),我认为您只需将 Pair 更正为 PAIR 即可解决您的问题。如果您使用 gcc,那么您应该将结构前缀添加到结构中。

于 2012-11-04T14:01:11.047 回答
1

c 区分大小写。PAIR 和 Pair 是不一样的。

此外,struct PAIR 不是自动 typedef。

您需要将变量/指针声明为

struct PAIR * instance;

或者你需要先 typedef 它像

typedef struct PAIR
{
     // variables;
} Pair; // note the typedef name appears at the end.

现在你可以这样做

Pair var;

在 c++ 中,类型自动是 typedef,但在 c 中不是

于 2012-11-04T13:15:00.433 回答
0

尝试:

struct PAIR *ve;

反而。

于 2012-11-04T13:15:06.353 回答