Struct数组,如何定义好?
刚刚问了一个Struct全局变量的问题,谢谢Chiyer(星羽) ( )。
可是如果要定义Struct数组,就会出现问题。不知怎样处理。
//Params.h
#include <string>
namespace MyParams
{
struct Param1
{
int P00;
int P01;
int P02;
std::string P03;
std::string P04;
};
};
//Params.cpp
namespace MyParams
{
Param1 Param1_Data[10]; //定义数组。
};
// app.cpp
#include "Params.h "
using Namespace MyParams;
extern Param1 Param1_Data[10]; //外部引用数组。
void main()
{
ShowMessage( Param1_Data[0].P00 );
}
编译出现连接错误:
[Linker Error] Unresolved external '_Param1_Data ' referenced from MAIN.OBJ
//!!!!!!!
[解决办法]
还有就是你的数组不应该在Params.h中声明
应该声明在另外一个头文件中而不包含他
这样extern就有意义了
[解决办法]
我的文件:
1.h:
#include <string>
using namespace std;
namespace MyParams
{
typedef struct Param1
{
int P00;
int P01;
int P02;
string P03;
string P04;
} Param1_Data;
};
2.h:
#include "1.h "
using namespace MyParams;
Param1_Data m;
Param1_Data My_Data[10] = {m,m,m,m,m,m,m,m,m,m};
1.cpp:
#include <iostream>
#include "1.h "
using namespace std;
using namespace MyParams;
extern Param1_Data My_Data[10];
void main()
{
cout < <My_Data[0].P00 < <endl;
return;
}
2.cpp:
#include "2.h "
一定要有2.cpp不然编译会错。