Skip navigation.
 
mlRe: Struct introspection or information
FROM : Steve Christensen
DATE : Tue Nov 06 19:28:10 2007

The main issue is that a structure declaration is last used by the 
compiler to determine how to allocate memory for a structure 
instance, and what the offset and size of a field is so it can be 
accessed correctly. Once the assembly instructions corresponding to 
the original C statements has been generated there's no further need 
to know what the fields were named or what they actually refer to.


On Nov 6, 2007, at 8:25 AM, Monitus wrote:

> Thank you to all who replied... Yes, the original problem stated 
> that I didn't have access to any kind of structure definition... 
> Still, I tried the @encode suggestion, and it looks like it gave me 
> an incomplete result - like @encode(struct __MyStruct) gave 
> "{__My"... Strange... Anyway, I'm now looking for other ways of 
> doing what I need to do, a I seriously doubt i can get to the 
> structure info...
>
> Thanks again!
>
> Jean.
>
> On Nov 5, 2007, at 8:53 PM, Steve Christensen wrote:
>

>> I may have misunderstood, but I thought the OP mentioned not 
>> having access to the headers that define certain C structs. If 
>> that's the case, we're talking about opaque structures from the 
>> point of view of the caller, right?
>>
>>
>> On Nov 5, 2007, at 4:34 PM, David Spooner wrote:
>>

>>>
>>> You might get some mileage out of the @encode() directive.  It 
>>> produces a c-string encoding of a c type, which (with significant 
>>> effort) can be parsed in order to traverse a c structure of that 
>>> type.  These encodings do not contain the field names of 
>>> structures, but they often contain structure tag names...
>>>
>>> More information is available in the section "Type Encodings" of
>>> The Objective-C 2.0 Programming Language
>>>
>>> dave
>>>
>>> On 5-Nov-07, at 1:33 PM, Monitus wrote:
>>>

>>>> Good day everyone - sorry if this is not totally Cocoa-related: 
>>>> if there's a better list for this, please let me know and accept 
>>>> my apologies in advance...
>>>>
>>>> Is there any way to know the fields in a C structure, if you 
>>>> don't have the headers that define it? Or at the very least, is 
>>>> it possible to access it's field values?
>>>>
>>>> Thanks!
>>>>
>>>> Jean Le Clerc.

Related mailsAuthorDate
mlStruct introspection or information Monitus Nov 5, 21:33
mlRe: Struct introspection or information John Stiles Nov 5, 21:57
mlRe: Struct introspection or information Steve Christensen Nov 5, 23:14
mlRe: Struct introspection or information David Spooner Nov 6, 01:34
mlRe: Struct introspection or information Steve Christensen Nov 6, 02:53
mlRe: Struct introspection or information Steve Christensen Nov 6, 19:28
mlRe: Struct introspection or information Steve Christensen Nov 6, 22:08