Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > structure paddind

Reply
Thread Tools

structure paddind

 
 
amit
Guest
Posts: n/a
 
      03-05-2008
how to stop or change structure padding ???
 
Reply With Quote
 
 
 
 
Chris Dollin
Guest
Posts: n/a
 
      03-05-2008
amit wrote:

> how to stop or change structure padding ???


(a) See your local implementation manual for the implementation-specific
way to do this.

(b, preferred if plausible) Write your code so that it doesn't care about
structure padding even if there is any.

Why do you think you want to stop or change structure padding?

--
"Well begun is half done." - Proverb

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

 
Reply With Quote
 
 
 
 
jacob navia
Guest
Posts: n/a
 
      03-05-2008
Chris Dollin wrote:
> amit wrote:
>
>> how to stop or change structure padding ???

>
> (a) See your local implementation manual for the implementation-specific
> way to do this.
>
> (b, preferred if plausible) Write your code so that it doesn't care about
> structure padding even if there is any.
>
> Why do you think you want to stop or change structure padding?
>


We had a discussion about the

#pragma pack

construct in this group several weeks ago. Google for it, since
we gave a detailed discussion about that construct in many different
situations and compilers

--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
 
Reply With Quote
 
Chris Dollin
Guest
Posts: n/a
 
      03-05-2008
jacob navia wrote:

> Chris Dollin wrote:
>> amit wrote:
>>
>>> how to stop or change structure padding ???

>>
>> (a) See your local implementation manual for the implementation-specific
>> way to do this.
>>
>> (b, preferred if plausible) Write your code so that it doesn't care about
>> structure padding even if there is any.
>>
>> Why do you think you want to stop or change structure padding?

>
> We had a discussion about the
>
> #pragma pack
>
> construct in this group several weeks ago. Google for it, since
> we gave a detailed discussion about that construct in many different
> situations and compilers


Regardless of any historical discussion about #pragmapack, I'd still
like to hear the OP's reasons, since their concerns might be satisfiable
without recourse to semi-portable assistance (deLameters should be enough).

--
"Well begun is half done." - Proverb

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      03-05-2008
jacob navia wrote:
> Chris Dollin wrote:
>> amit wrote:
>>
>>> how to stop or change structure padding ???

>>
>> (a) See your local implementation manual for the
>> implementation-specific way to do this.
>>
>> (b, preferred if plausible) Write your code so that it doesn't
>> care about structure padding even if there is any.
>>
>> Why do you think you want to stop or change structure padding?

>
> We had a discussion about the #pragma pack construct in this
> group several weeks ago. Google for it, since we gave a detailed
> discussion about that construct in many different situations and
> compilers


Once more, Jacob is off-topic and not portable. See the following
extract from N869:

6.10.6 Pragma directive

Semantics

[#1] A preprocessing directive of the form

# pragma pp-tokens-opt new-line

where the preprocessing token STDC does not immediately
follow pragma in the directive (prior to any macro
replacement)136) causes the implementation to behave in an
implementation-defined manner. The behavior might cause
translation to fail or cause the translator or the resulting
program to behave in a non-conforming manner. Any such
pragma that is not recognized by the implementation is
ignored.

____________________

136An implementation is not required to perform macro
replacement in pragmas, but it is permitted except for in
standard pragmas (where STDC immediately follows pragma).
If the result of macro replacement in a non-standard
pragma has the same form as a standard pragma, the
behavior is still implementation-defined; an
implementation is permitted to behave as if it were the
standard pragma, but is not required to.


[#2] If the preprocessing token STDC does immediately follow
pragma in the directive (prior to any macro replacement),
then no macro replacement is performed on the directive, and
the directive shall have one of the following forms whose
meanings are described elsewhere:

#pragma STDC FP_CONTRACT on-off-switch
#pragma STDC FENV_ACCESS on-off-switch
#pragma STDC CX_LIMITED_RANGE on-off-switch

on-off-switch: one of
ON OFF DEFAULT

--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.


--
Posted via a free Usenet account from http://www.teranews.com

 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      03-05-2008
jacob navia <(E-Mail Removed)> writes:
> Chris Dollin wrote:
>> amit wrote:
>>> how to stop or change structure padding ???

>>
>> (a) See your local implementation manual for the implementation-specific
>> way to do this.
>>
>> (b, preferred if plausible) Write your code so that it doesn't care about
>> structure padding even if there is any.
>>
>> Why do you think you want to stop or change structure padding?

>
> We had a discussion about the
>
> #pragma pack
>
> construct in this group several weeks ago. Google for it, since
> we gave a detailed discussion about that construct in many different
> situations and compilers


As you know, and as the OP perhaps doesn't know, #pragma pack is not
defined by the standard, is implemented differently by different
implementations, is not implemented at all by other implementations,
and will necessarily make any code that uses it non-portable (unless
all uses of it are protected by #ifdef).

Using #pragma pack might turn out to be the perfect solution to the
OP's problem, but recommending it without even mentioning the caveats
is irresponsible.

And of course it can cause struct members to be misaligned, which can
slow down access to such members.

Depending on what the OP is trying to do, reordering the member
declarations so the larger members are declared first might solve the
problem without any of the drawbacks of #pragma pack.

See also question 2.12 in the comp.lang.c FAQ,
<http://www.c-faq.com/>, and follow the links to other relevant
questions. <http://www.c-faq.com/struct/align.esr.html> has some good
information.

--
Keith Thompson (The_Other_Keith) <(E-Mail Removed)>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
 
Reply With Quote
 
Richard Tobin
Guest
Posts: n/a
 
      03-05-2008
In article <(E-Mail Removed)>,
Keith Thompson <(E-Mail Removed)> wrote:

>Using #pragma pack might turn out to be the perfect solution to the
>OP's problem, but recommending it without even mentioning the caveats
>is irresponsible.


He pointed the poster to a previous discussion of it. Does he have
to repeat it all too?

-- Richard
--
:wq
 
Reply With Quote
 
jacob navia
Guest
Posts: n/a
 
      03-05-2008
Richard Tobin wrote:
> In article <(E-Mail Removed)>,
> Keith Thompson <(E-Mail Removed)> wrote:
>
>> Using #pragma pack might turn out to be the perfect solution to the
>> OP's problem, but recommending it without even mentioning the caveats
>> is irresponsible.

>
> He pointed the poster to a previous discussion of it. Does he have
> to repeat it all too?
>
> -- Richard


It was a deep discussion with pros, cons, examples
from weird architectures, etc. I did not recommend anything
I just pointed to that discussion, as you say.

--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Difference between c structure and c++ structure raghunandan_1081@yahoo.com C++ 9 11-11-2011 07:34 AM
How to read a Structure from a matlab file to a structure in Vc++ 2003 meisterbartsch C++ 2 06-12-2007 08:47 PM
Memory allocation in Structure to Structure pra_ramli@rediffmail.com C++ 2 03-09-2006 05:51 AM
Copy String structure "A" to string structure "B" Leo Nunez C Programming 3 02-09-2005 05:14 AM
Pointers to structure and array of structure. Excluded_Middle C Programming 4 10-26-2004 05:39 AM



Advertisments