мы микроконтроллеры программируем. поскольку там на борту всего 0.5-1К
RAM то эта RAM экономится жестко. соответственно всякие поля зачастую
упаковываются в байты:
struct something {
uint8_t type;
union {
struct {
unsigned flag1:1;
unsigned field1:5;
28 мая 2011 г. 20:34 пользователь yuri.nefe...@gmail.com написал:
On Sat, 28 May 2011, Dmitry E. Oboukhov wrote:
мы микроконтроллеры программируем. поскольку там на борту всего 0.5-1К
RAM то эта RAM экономится жестко. соответственно всякие поля зачастую
упаковываются в байты:
struct
On Sat, 28 May 2011, Dmitry E. Oboukhov wrote:
мы микроконтроллеры программируем. поскольку там на борту всего 0.5-1К
RAM то эта RAM экономится жестко. соответственно всякие поля зачастую
упаковываются в байты:
struct something {
uint8_t type;
union {
struct {
2011/5/25 Dmitry E. Oboukhov un...@debian.org:
тут наверно есть народ который C хорошо знает. такой вопрос.
допустим имеется структура
struct something {
int a;
int b;
};
проинициализировать можно при объявлении так:
struct something a = { .a = 1, .b = 2 }, c = { 2, 3 };
а вот
On Fri, 27 May 2011, Александр Седов wrote:
2011/5/25 Dmitry E. Oboukhov un...@debian.org:
тут наверно есть народ который C хорошо знает. такой вопрос.
допустим имеется структура
struct something {
int a;
int b;
};
проинициализировать можно при объявлении так:
struct something a = {
Немного устаревшие сведения :). Я сам так думал, но вот
ISO/IEC 9899 (http://www.open-std.org/jtc1/sc22/wg14/)
утверждает следующее:
6.7.8 Initialization
38 EXAMPLE 13 Any member of a union can be initialized:
union { /* ... */ } u = { .any_member = 42 };
Так что в С99
Немного устаревшие сведения :). Я сам так думал, но вот
ISO/IEC 9899 (http://www.open-std.org/jtc1/sc22/wg14/)
утверждает следующее:
6.7.8 Initialization
38 EXAMPLE 13 Any member of a union can be initialized:
union { /* ... */ } u = { .any_member = 42 };
Так что в
Может быть поможет цитата из C1X Draft:
Unnamed members of objects of structure and union type do not
participate in initialization.
Unnamed members of structure objects have indeterminate value even
after initialization.
--
С уважением,
Константин Матюхин
On Wed, 25 May 2011, Dmitry E. Oboukhov wrote:
тут наверно есть народ который C хорошо знает. такой вопрос.
допустим имеется структура
struct something {
int a;
int b;
};
проинициализировать можно при объявлении так:
struct something a = { .a = 1, .b = 2 }, c = { 2, 3 };
а вот если
Может быть поможет цитата из C1X Draft:
Unnamed members of objects of structure and union type do not
participate in initialization.
Unnamed members of structure objects have indeterminate value even
after initialization.
не то чтобы она помогла, но ясность внесла, спасибо!
--
. ''`.
Забыл добавить, что это расширение над ansi-C.
См. например:
http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed-Fields
В стандартном си неименованными могут быть только поля в bit field,
ну и всякая экзотика типа неименованный массив на который хранится
указатель:
int* p =
11 matches
Mail list logo