易截截图软件、单文件、免安装、纯绿色、仅160KB

C++/c 结构体的递归定义理解?

开源VC2008代码中具有如下问题?

x264_t 结构体的递归定义?
1,x264_t 结构体似乎出现了递归定义?如何理解?
2,*thread似乎和多线程有关系,如何理解?

common.h中:
// 编码器参数,以下都是这样一个大结构的定义。
struct x264_t
{
  /* encoder parameters */
  x264_param_t param;

  x264_t *thread[X264_THREAD_MAX];
LZ的意思是链表方式?



x264_t *thread[X264_THREAD_MAX];
注意这边有个*。。定义的是个结构体指针,存一个结构体的地址。。并不会出现递归定义。。。
thread是可以存入有X264_THREAD_MAX个x264_t *的数组

上面说得有点问题
x264_t *thread[X264_THREAD_MAX];
这边是声明一个thread数组,它可以存X264_THREAD_MAX个x264_t *
x264_t *代表一个指向x264_t 的指针。。存的是指针

而且就算
struct x264_t
{
  x264_t x;//这边的错误是使用正在定义的x,也不是递归定义吧。。。
};

1,为什么要这么定义,有什么好处?
2,sizeof(x264_t)结果是什么,如何计算存储空间?

x264_t *thread[X264_THREAD_MAX];
这句中的thread 只是一个指向结构体的指针,在vs2008 中大小为4个字节。
注意这并不是递归定义,这样做应该是为了维护一个链表。

我调试的时候发现,每个x264_t结构下面都有127个thread,而每个thread其实又是一个完整的x264_t,很多层,一直递归下去,没有看到头。

我们定义一个这样的结构,意义何在?
struct x264_t
{
  handle thread_


相关问答:

高分求!最好是C/C++ - C/C++ / C语言

分别用结构化方法和面向对象方法编程实现下面要求:
对Circle和Rectangle实现以下功能Center,Move,Rotate,Print.
自己先订以下,这是一个刚学习计算机的人问我的


学习,看看

继续顶哦

学习了。

go o ......

C的学习途径 - C/C++ / 新手乐园

我只学过清华蓝封面的C语言基础,想更深入的学习,该看什么书好?
C Primer Plus
C程序设计语言(第2版新版)
C语言程序设计_现代方法
C语言参考手册第五版
C语言大全
C和指针
C陷阱与缺陷
C专家编程

......

C/S项目架构设计----求助 - Java / Java SE

本人正在用Java做一个C/S架构的项目, 
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。 
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......

c语言实现linux time相关函数 - C/C++ / C语言

现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号