读书人

C 语言的接口与实现一书中的代码编译有

发布时间: 2012-03-20 14:01:10 作者: rapoo

C 语言的接口与实现一书中的代码编译问题
书中的代码
Stack.h

#ifndef __STACK_INCLUDE_H_
#define __STACK_INCLUDE_H_

#define T Stack_T
typedef struct T *T;

extern T Stack_new();

#undef T

#endif

Stack.cpp

#include "Stack.h"

#define T Stack_T

Test.cpp

#include "Stack.h"

int main(int argc, char *argv[])
{
return 0;
}

编译错误,提示d:\cii\Stack.h(5): error C2040: 'Stack_T' : 'Stack_T *' differs in levels of indirection from 'Stack_T'

编译器为VS2003


[解决办法]
#define T Stack_T
后面的T都用 Stack_T代替了
typedef struct T *T;就成了
typedef struct Stack_T *Stack_T


[解决办法]
#define T Stack_T
typedef struct T *T;

你的T到底指代什么,这不是乱了嘛
[解决办法]
“全书都是这样的代码”,那可能是书上出了问题了。

读书人网 >C语言

热点推荐