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

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

2012-03-20 
C 语言的接口与实现一书中的代码编译问题书中的代码Stack.h#ifndef__STACK_INCLUDE_H_#define__STACK_INCL

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到底指代什么,这不是乱了嘛
[解决办法]
“全书都是这样的代码”,那可能是书上出了问题了。

热点排行