所以我定义了一个结构
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
有什么问题?
所以我定义了一个结构
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
有什么问题?
C 区分大小写,因此您应该使用 PAIR 而不是 Pair。
我不确定你使用的是哪个编译器,gcc 还是 g++?如果您使用 g++(因为您显示的文件是 optim.cpp),我认为您只需将 Pair 更正为 PAIR 即可解决您的问题。如果您使用 gcc,那么您应该将结构前缀添加到结构中。
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 中不是
尝试:
struct PAIR *ve;
反而。