首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数据结构提前定义的有关问题

2013-06-25 
数据结构提前定义的问题今天看到代码遇到数据结构提前定义的问题//////////////////head.h 文件中#include

数据结构提前定义的问题
今天看到代码遇到数据结构提前定义的问题
//////////////////
head.h 文件中
#include "stdafx.h"

struct XD_JSON;                 ///< JSON 对象数据结构前置声明
typedef struct XD_JSON XD_JSON; ///< JSON 对象数据类型声明
XD_JSON* fJson;
XD_JSON* creat();

head.cpp 文件中
#include "stdafx.h"

struct XD_JSON {
    int json;
};
XD_JSON* creat()
{
static XD_JSON* pXD_JSON = new XD_JSON ;

pXD_JSON->json = 9;
return (XD_JSON*)pXD_JSON;
}
//////////////之后的测试代码中
#include "head.h"
void test()
{
fJson = creat();
}
int main()
{
test();
printf("fJson->json = %d \n",fJson->json);
return 0;
}     
运行不了  大家给我看看哈  本人菜鸟 详细点哈 多谢指教             

[解决办法]


//////////////////
//head.h 文件中

struct XD_JSON;                 ///< JSON 对象数据结构前置声明
typedef struct XD_JSON XD_JSON; ///< JSON 对象数据类型声明

XD_JSON* JSON_creat();
int JSON_get(XD_JSON * json);
void JSON_set(XD_JSON * json, int value);

//head.cpp 文件中
#include "stdafx.h"

struct XD_JSON {
    int json;
};
XD_JSON* JSON_creat()
{
XD_JSON* pXD_JSON = new XD_JSON ;

pXD_JSON->json = 9;
return (XD_JSON*)pXD_JSON;
}

int JSON_get(XD_JSON * json)
{
return json->json;
}

void JSON_set(XD_JSON * json, int value)
{
json->json=value;
}


//////////////之后的测试代码中
#include "head.h"

XD_JSON * fJson = NULL;

void test()
{
fJson = JSON_creat();
}
int main()
{
test();
printf("fJson->json = %d \n",JSON_get(fJson));
return 0;
}     

[解决办法]
改成这样

//head.h
//结构定义应该放在头文件中。。
struct XD_JSON {
    int json;
};
typedef struct XD_JSON XD_JSON; ///< JSON 对象数据类型声明
XD_JSON* creat();


//head.cpp
#include "head.h"

XD_JSON* creat()
{
static XD_JSON* pXD_JSON = new XD_JSON ;
pXD_JSON->json = 9;
return (XD_JSON*)pXD_JSON;
}


//test.cpp
#include <stdio.h>
#include "head.h"

XD_JSON* fJson;//全局变量放在cpp中



void test()
{
fJson = creat();
}
int main()
{
test();
printf("fJson->json = %d \n",fJson->json);
return 0;
}     


热点排行