Re: Does __attribute__((__packed__)) aplies to types or variables?

"Daniel." <[email protected]> Thu, 22 Oct 2015 14:18:47 -0200
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <CAF3SDA4G2YGNOOOSeQE7JPow62M1NX34SiMv=5KykFb-oO1Exg@mail.gmail.com>
I mean that packed attribute is applied only when allocation is
implied or can I apply packed
attribute to struct definitions where no variables are declared?

struct __attribute__((__packed__)) foo { ... };
struct foo bar; <--- is this packed?

Regards,

2015-10-22 14:18 GMT-02:00 Daniel. <[email protected]>:
> I mean that packed attribute is applied only when allocation is implied or
> can I apply packed
> attribute to struct definitions where no variables are declared?
>
> struct __attribute__((__packed__)) foo { ... };
> struct foo bar; <--- is this packed?
>
> Regards,
>
> 2015-10-21 17:17 GMT-02:00 anish singh <[email protected]>:
>>
>>
>>
>> On Wed, Oct 21, 2015 at 10:56 AM, Daniel. <[email protected]> wrote:
>>>
>>> Suppose that I have a declaration:
>>>
>>> struct __attribute__((__packed__)) foo {
>>>   char ch;
>>>   int number;
>>> };
>>>
>>> Will be any variable of this type be packed?
>>>
>>> The real world thing is: I have a code that come up from 8bit world,
>>> with a lot of lots of chained structures that are transferred throght
>>> some radio frequence module, I need be sure that all this structs have
>>> no padding so that they can be transferred as they are to radio. To
>>> achieve this I've
>>> putted __attribute__((__packed__)) to every struct and inner struct
>>> that are sended through RF,
>>> but I read at some StackOverflow post that packed attribute aplies to
>>> variables not to types,
>>
>>
>> Can you elaborate? AFAIK you can safely use packed attribute to pack
>> your structures and send it over the network as long as you take care of
>> endianess.
>>
>> What do you mean by packed attribute applies to variables not to types?
>>>
>>> so I came here ask to experts. Is that true?
>>>
>>> At gcc manual I found Type Attributes and Variable attributes, so I'm
>>> assuming both exists how differentiate from one to another?
>>>
>>> Regards,
>>>
>>> --
>>> "Do or do not. There is no try"
>>>   Yoda Master
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe
>>> linux-c-programming" in
>>> the body of a message to [email protected]
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>
>
>
> --
> "Do or do not. There is no try"
>   Yoda Master



-- 
"Do or do not. There is no try"
  Yoda Master