《C语言接口与实现》读书疑问1(2012.06.03已解决)
来源:互联网 发布:福彩三地九宫图算法 编辑:程序博客网 时间:2024/05/21 21:37
2012.06.03 已解决:
见中文版《C专家编程》P267页下面部分一句话:
“在C++中,由typedef定义的名字不能与已有的结构标签冲突,但在C语言中却是允许的(它们属于不同的名字空间)”
原文:
很疑惑,比如书中头文件stack.h的代码:
/* $Id: H:/drh/idioms/book/RCS/inter.doc,v 1.11 1997/02/21 19:42:15 drh Exp $ */#ifndef STACK_INCLUDED#define STACK_INCLUDED#define T Stack_Ttypedef struct T *T;extern T Stack_new (void);extern int Stack_empty(T stk);extern void Stack_push (T stk, void *x);extern void *Stack_pop (T stk);extern void Stack_free (T *stk);#undef T#endif
上面的那个【T】到底是个“结构”呢,还是“指针”呢?
全书中都是充满了这样的定义,不过请记住,这些都是在扩展名“C”下可以的!!如果cpp扩展名的文件,马上报错:
error C2040: 'Stack_T' : 'struct Stack_T *' differs in levels of indirection from 'struct Stack_T'
在C++语言里,typedef struct T *T;的问题,还是搞不太明白,如果这个问题不能解决的话,那么《C语言接口与实现》的这些源码不是没办法应用到【C++】上来吗?难道每个将来每个复用该接口的程序都是用【.c】来实现吗?
下面是一个有用的链接,但是看不太懂:
http://stackoverflow.com/questions/612328/difference-between-struct-and-typedef-struct-in-c/612476#612476
(同google搜索关键字得到:typedef struct T *T)
- 《C语言接口与实现》读书疑问1(2012.06.03已解决)
- c语言接口与实现
- C语言接口与实现[+]
- 读书笔记--C语言接口与实现--接口与实现
- 条件运算符与逗号的嵌套的疑问,求大神解答(已自行解决)
- [疑问]Scanner与正则表达式的问题[已解决!]
- 实现Java与C语言接口
- 实现Java与C语言接口
- 实现Java与C语言接口
- 《c语言接口与实现》读后感
- 实现Java与C语言接口
- C语言接口与实现: Atom
- C语言接口与实现【第一章】
- C语言接口与实现【第二章】
- PAT考试乙级1033(C语言实现)重点题目 部分正确(已解决)
- 已解决_js疑问_2
- C语言接口与实现创建可重用软件的技术读书笔记(1)
- C语言疑问
- PC上远程调试Android Python Script(1)
- javase--5流
- 黑马程序员----学习笔记
- 控件注册失败原因汇集
- 第十一周实验报告一之循环结构的运用
- 《C语言接口与实现》读书疑问1(2012.06.03已解决)
- 控制上网!!!(版本之1.1) 当前时间从网络取得。
- python官方网站的下载链接竟然特意使用了中文标示“下载” (for china)
- 1/29/2012
- Flex程序启动过程再探秘: (1)基础知识
- Microsoft Press Windows Azure Step by Step Note
- c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)
- 【算法设计与分析】最大子段和问题
- 第十一周报告二之英寸向米的转换表