以count = 0
中定义的FILE
类型为例:有没有办法获取有关其字段(名称,大小,偏移量等)的信息而无需查看标题?有时,使用这样的函数/宏来检查结构的组件会很方便。
答案 0 :(得分:11)
没有
在C中没有与数据结构相关的元数据,所有这些都在编译时丢失。
完全有可能,因为FILE
是不透明的,没有公共标题实际上有定义。它可能只是库标题中的typedef struct __FILE FILE;
,然后所有细节都保存在内部,可能在你甚至没有源代码的代码中。
答案 1 :(得分:2)
简单的答案是否。你必须有源代码。
答案 2 :(得分:2)
在基于C的结构中,数据以不自定义的方式存储。 - 您必须知道结构定义才能解释数据。这样可以将数据的大小减小到最低限度,并且只要您的程序了解结构,就可以更快地访问。
答案 3 :(得分:1)
答案是否定的。
每当我需要找到有关结构数据成员的信息时,Header File
和comments
就足够了。
并且您无法使用函数/宏来检查结构的组件,因为没有与C中的变量和过程相关联的元数据。
答案 4 :(得分:0)
查看有关其字段的信息的唯一方法是获取实际的源,或者说明结构如何组织的api /软件文档。
答案 5 :(得分:-1)
这是不可能的。 C不保留此类信息,可能是由于“您不支付您不使用的费用”原则;它还使语言简单易用。
您最多可以通过struct
标准宏查询offsetof
中给定成员的位置。但你必须知道该领域的名称。