On 2011-6-26 11:57, Mingjie Xing wrote:
在 2011年6月25日 下午7:53,asmwarrior<asmwarrior@xxxxxxxxx> 写道:http://gcc.gnu.org/wiki/gengtype 我始终不是很明白,标注了GTY这些宏了之后,这些类型和没有标注有虾米区别?? 怎么加入了这些,就可以支持垃圾收集?甚至可以支持PCH了呢?简单说一下,gengtype程序会扫描gcc源代码,根据标注GTY自动生成相应的分配和收集代码,可以看到build目录下有一些gt-xxx文件。这些文件在gcc源代码中的最后一行,会使用#include包含进来。 xmj
谢谢! 这一点我自己也是明白的。在build 目录下面,有非常多的 gt-foo.h 这样的头文件。这些文件基本上是被对 应的 foo.cpp 包含的。
这些gt-foo.h文件里面的内容非常古怪,函数名字特别长,我就是不太懂,这些冗 长的函数名字,具体和gcc里面的某些类型有什么关系?
例如我定义了一个struct结构体 struct A { int m1; float m2; } 如果加上了GTY的宏,那么我感觉就应该生成的是:读写struct A的一些函数???我想象中,感觉有点类似于 data persistence 那种意味?也就是把某些变量保存 到硬盘上?然后下一次直接都读入到内存再初始化某些变量?
但是这个和GC(垃圾收集)又似乎扯不上关系。GCC是怎么知道要把某些变量给 persistence了呢?
谢谢 asmwarrior