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 を使用する場合は、構造体にstructプレフィックスを追加する必要があります。

于 2012-11-04T14:01:11.047 に答える
1

c は大文字と小文字を区別します。ペアとペアは同じではありません。

さらに、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 に答える