请问一个C++程序调用用C的有关问题

请教一个C++程序调用用C的问题.
我需要在一个C++程序中调用一个C的库,而C库里面提供了一个头文件中有一个结构体是这么定义的.
#define T URL_T
typedef struct T *T;
这段代码在C程序里面调用没有问题,我已经测试过了.
但是在C++的程序里调用就会报错,错误是:相互冲突的声明 ‘typedef struct URL_T* URL_T’
请问这是为什么?有没有解决的办法呢?


------解决方案--------------------
#define T URL_T
#ifndef _cplusplus
typedef struct T *T;
...
#else
extern "C" {
...
#endif
在c的头文件里加上标准的C++预处理开关将其转化为C/C++共用头文件即可。