当前位置: 技术问答>linux和unix
用C写的OO模块,碰到编译器抱怨符号多重typedef,怎么解决呢?
来源: 互联网 发布时间:2015-11-25
本文导语: //头文件是: //test.h typedef void *test_t; test_t test_create(...); //建立对象 int test_use(test_t me, ...); //使用这个对象 void test_destroy(test_t *me);//销毁这个对象 //实现文件是: //test.c #include "test.h" typedef struct _test_t { ...
//头文件是:
//test.h
typedef void *test_t;
test_t test_create(...); //建立对象
int test_use(test_t me, ...); //使用这个对象
void test_destroy(test_t *me);//销毁这个对象
//实现文件是:
//test.c
#include "test.h"
typedef struct _test_t
{
int a;
int b;
}*test_t; //我希望编译器能让我重定义它,可惜gcc会报错。
//以下为函数实现
test_t test_create(...){} //建立对象
int test_use(test_t me, ...){} //使用这个对象
void test_destroy(test_t *me){}//销毁这个对象
//有什么办法可以让编译器不抱怨符号多重typedef这点吗?试过#undef是不行的。
//test.h
typedef void *test_t;
test_t test_create(...); //建立对象
int test_use(test_t me, ...); //使用这个对象
void test_destroy(test_t *me);//销毁这个对象
//实现文件是:
//test.c
#include "test.h"
typedef struct _test_t
{
int a;
int b;
}*test_t; //我希望编译器能让我重定义它,可惜gcc会报错。
//以下为函数实现
test_t test_create(...){} //建立对象
int test_use(test_t me, ...){} //使用这个对象
void test_destroy(test_t *me){}//销毁这个对象
//有什么办法可以让编译器不抱怨符号多重typedef这点吗?试过#undef是不行的。
|
//头文件是:
//test.h
struct test_t;
test_t *test_create(...); //建立对象
int test_use(test_t *me, ...); //使用这个对象
void test_destroy(test_t **me);//销毁这个对象
//实现文件是:
//test.c
#include "test.h"
struct test_t
{
int a;
int b;
}; //我希望编译器能让我重定义它,可惜gcc会报错。
//以下为函数实现
test_t *test_create(...){} //建立对象
int test_use(test_t *me, ...){} //使用这个对象
void test_destroy(test_t **me){}//销毁这个对象
//test.h
struct test_t;
test_t *test_create(...); //建立对象
int test_use(test_t *me, ...); //使用这个对象
void test_destroy(test_t **me);//销毁这个对象
//实现文件是:
//test.c
#include "test.h"
struct test_t
{
int a;
int b;
}; //我希望编译器能让我重定义它,可惜gcc会报错。
//以下为函数实现
test_t *test_create(...){} //建立对象
int test_use(test_t *me, ...){} //使用这个对象
void test_destroy(test_t **me){}//销毁这个对象