Content deleted Content added
Tag: |
|||
(7 intermediate revisions by 6 users not shown) | |||
Line 1:
{{lowercase title}}
{{Talkheader}}
{{WikiProject
{{WikiProject C/C++|importance=High}}
}}
== Article or redirect? ==
Line 21 ⟶ 23:
:"''For example, common Internet protocols rely on the fact that C compilers insert padding between struct fields in predictable ways [...]''"
Is this an example of [[type punning]]? --[[User:Abdull|Abdull]] ([[User talk:Abdull|talk]]) 22:52, 2 January 2010 (UTC)
:I don't think so. I think it was ''intended'' for uses such as those shown in the example, and not, as ''Type punning'' characterized it{{mdash}}a ''subversion''. See [[#Stuctural padding]] below. — [[User:Cpiral|<
== Call by reference or call by value? ==
Line 33 ⟶ 35:
*The internal alignment of data members is not unique to the C struct. There is an analogous dynamic that also "works as expected" concerning subclassing in C++. That said it is very interesting that even if a C compiler is run "unaligned" it will always align (don't say "pad"?) struct members ''inside'' the struct, guaranteeing this manipulation by a sub-struct of quantity N-last elements manipulating its containing struct of N elements.
Salient internals for our lead section are the '''size''' (as mentioned), and the method of '''chaining''' the members of a C struct to one another.
— [[User:Cpiral|<
== Declare/define ==
Line 73 ⟶ 75:
Also, there is a line of code in the article {ie. typedef struct point point; } that has two words 'point point'. This is sort of like the life story of many documents --- introducing confusing things without explaining it. To the newcomer of the language, they will probably have no idea what that means. It is also off-putting for newcomers when confusing details or code like that is just placed there, without some kind of explanation - such as
== What directly corresponds data type the Assembly Language has? ==
|