Структуры в С - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Re: Структуры в С
сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it

Гугл, конечно, работает, когда знаешь, что искать... ;-)))

Спасибо!

С уважением, Сергей



Re: Структуры в С
Привет, Sergey !


 27 Jun 06 , 16:24  Sergey G. Shipilov писал к All:

SGS> Hе знает ли кто, как простым способом получить
SGS> смещение элемента в структуре на С?
SGS> То есть, например, имеем описание:

SGS> struct test {
SGS>                   char a,b;
SGS>                   int c;
SGS>                   char d[10];
SGS>                 }

SGS> Как получить в общем виде смещение  элементов
SGS> c или d[3] относительно начала структуры?

SGS> Для конкретной переменной это типа понятно:
SGS> можно просто получить указатель на элемент.
SGS> А в общем виде?

эээ... а в чем проблема?

test a;
...
printf("offset of d[3] is %i\n", ((char*)&a.d[3])-((char*)(&a)) );

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... 2B or not 2B = FFFFFFFF

Re: Структуры в С
сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it

Так я и говорю - для конкретной, объявленной переменной - никаких проблем...
Речь шла о получении смещения в ТИПЕ... А этот вопрос великолепно освещен в
статье
http://www.embedded.com/showArticle.jhtml?articleID18%312031 , за ссылку на
которую вечная благодарность Dmitry Lyokhin . ;-)))

С уважением, Сергей



Re: Структуры в С
Hello Kirill.

Thu Jun 29 2006 12:29, Kirill Frolov wrote to me:

 KF> Так что лучше offsetof(), оно хоть на целевой платформе точно
 KF> работает, если конечно есть.

Кстати, в Аде определено не помню сколько, но больше десятка таких встроенных
"функций времени компиляции", называемых атрибутами.  А в C/C++, по сути,
только одна - sizeof.


Dimmy.


Re: Структуры в С

Quoted text here. Click to load it

  typeof() ещё.


Site Timeline