符号的数据大小

时间:2012-03-16 13:20:11

标签: c++ c vxworks

使用vxWorks API symFind(),我们可以获知知道其名称的全局变量的地址。有没有办法知道符号的相应大小?

事实是搜索到的符号可以是任何类型,我需要在运行时找到它。所以我基本上不能使用sizeof指令。

1 个答案:

答案 0 :(得分:2)

这是先验不可能,因为当你添加一个符号时,你从不指定它的大小:symAdd函数只需要一个SYMTAB_ID,一个名字,一个地址,类型ID和组ID。一些预定义的类型ID意味着一个大小(或者至少,暗示足够的信息,您可以检查地址上的数据并推断大小),但其他预定义的类型ID不会;即使他们所有都做了,API仍然无法知道用户定义的类型(因为它只是将它们视为不透明的整数标识符)。