реклама на сайте
подробности
Wiki
Photo
Forum
Reviews
Help (!)
Главное меню
О сайте
Правила
Ссылки наши
Помощь сайту
Карта сайта
Контакты
Благодарности
Board Menu
Новые сообщения
Пользователи
Календарь
Помощь
Помощник
Personal Menu
Привет гость
User:
Pass:
Войти в скрытом режиме:
Регистрация!
Забыли пароль?
Отправить повторно письмо с кодом активации
Партнеры
Регистрация LIR
Аренда IP адресов
Продать IPv4
или
купить IPv4
Выделенные серверы
Правила Форума
Помощь
Поиск
Пользователи
Календарь
Личная почта
Панель управления
Искать только в этом форуме?
Дополнительные параметры
Форум разработчиков электроники ELECTRONIX.ru
>
Сайт и форум
>
В помощь начинающему
>
Программирование
Как получить sizeof для полей структуры
Опции
Student2
Просмотр профиля
Aug 7 2009, 09:55
Сообщение
#1
Частый гость
Группа:
Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737
Если имеем структура:
typedef struct {
uint8_t arrSignal[12],
uint8_t arrDelta[24]
} data_t;
как можно получить значение
sizeof
для полей структуры, например для arrSignal?
var1 = sizeof(data_t.arrSignal); /* компилатор глючить */
Если ползовать
uint8_t var1 = sizeof(data_t);
будем получить ответ 36, но как обстоит дело с
sizeof
полями data_t?
Конечно если приложить sizeof к какой то имплементации структуры получить ответ не проблем, например:
data_t someVar; /* переменная типа data_t */
....
uint8_t var2 = sizeof(someVar.arrSignal); /* возвращает 12 */
Ответов
Сергей Борщ
Просмотр профиля
Aug 7 2009, 12:17
Сообщение
#2
Гуру
Группа:
Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095
Компилер не глючит, а ругается совершенно правильно.
Код
typedef struct {
uint8_t arrSignal[12];
uint8_t arrDelta[24];
} data_t;
int var1 = sizeof((*(data_t *)0).arrSignal);
int var2 = sizeof(((data_t *)0)->arrSignal);
--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (
C++ FAQ
)
jorikdima
Просмотр профиля
Aug 7 2009, 13:09
Сообщение
#3
тут может быть ваша реклама
Группа:
Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280
Цитата(Сергей Борщ @ Aug 7 2009, 15:17)
Код
int var1 = sizeof((*(data_t *)0).arrSignal);
int var2 = sizeof(((data_t *)0)->arrSignal);
А что это за синтаксис такой?
Что тут хоть делается?
Сообщений в этой теме
Student2
Как получить sizeof для полей структуры
Aug 7 2009, 09:55
Палыч
Оператор sizeof применим к выражениям или к именам...
Aug 7 2009, 11:54
Student2
Цитата(Палыч @ Aug 7 2009, 14:54) Операто...
Aug 7 2009, 12:19
Сергей Борщ
Компилер не глючит, а ругается совершенно правильн...
Aug 7 2009, 12:17
jorikdima
Цитата(Сергей Борщ @ Aug 7 2009, 15:17) К...
Aug 7 2009, 13:09
Student2
Цитата(jorikdima @ Aug 7 2009, 16:09) А ч...
Aug 7 2009, 13:58
Палыч
Цитата(jorikdima @ Aug 7 2009, 16:09) А ч...
Aug 7 2009, 14:02
Student2
Цитата(Палыч @ Aug 7 2009, 17:02) Чтобы п...
Aug 7 2009, 14:10
« Предыдущая тема
·
Программирование
·
Следующая тема »
1
чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей:
0
Главная страница
Поиск
Помощь
Сайт и форум
|-- Новости и обсуждения сайта и форума
|-- Поддержка форума
|-- Другие известные форумы и сайты по электронике
|-- В помощь начинающему
|-- International Forum
|-- Образование в области электроники
|-- Обучающие видео-материалы и обмен опытом
Cистемный уровень проектирования
|-- Вопросы системного уровня проектирования
|-- Математика и Физика
|-- Операционные системы
|-- Документация
|-- Разработка цифровых, аналоговых, аналого-цифровых ИС
|-- Электробезопасность и ЭМС
|-- Управление проектами
Программируемая логика ПЛИС (FPGA,CPLD, PLD)
|-- Среды разработки - обсуждаем САПРы
|-- Работаем с ПЛИС, области применения, выбор
|-- Языки проектирования на ПЛИС (FPGA)
|-- Системы на ПЛИС - System on a Programmable Chip (SoPC)
Цифровая обработка сигналов - ЦОС (DSP)
|-- Сигнальные процессоры и их программирование - DSP
|-- Алгоритмы ЦОС (DSP)
Микроконтроллеры (MCs)
|-- Cредства разработки для МК
|-- ARM
|-- AVR
|-- MSP430
|-- Все остальные микроконтроллеры
|-- Отладочные платы
Печатные платы (PCB)
|-- Разрабатываем ПП в САПР - PCB development
|-- Работаем с трассировкой
|-- Изготовление ПП - PCB manufacturing
Сборка РЭУ
|-- Пайка, монтаж, отладка, ремонт
|-- Корпуса
|-- Вопросы надежности и испытаний
Аналоговая и цифровая техника, прикладная электроника
|-- Вопросы аналоговой техники
|-- Цифровые схемы, высокоскоростные ЦС
|-- Rf & Microwave Design
|-- Метрология, датчики, измерительная техника
|-- АВТО электроника
|-- Умный дом
|-- 3D печать
|-- Робототехника
Силовая Электроника - Power Electronics
|-- Силовая Преобразовательная Техника
|-- Обратная Связь, Стабилизация, Регулирование, Компенсация
|-- Первичные и Вторичные Химические Источники Питания
|-- Высоковольтные Устройства - High-Voltage
|-- Электрические машины, Электропривод и Управление
|-- Индукционный Нагрев - Induction Heating
|-- Системы Охлаждения, Тепловой Расчет – Cooling Systems
|-- Моделирование и Анализ Силовых Устройств – Power Supply Simulation
|-- Компоненты Силовой Электроники - Parts for Power Supply Design
Интерфейсы
|-- Форумы по интерфейсам
Поставщики компонентов для электроники
|-- Поставщики всего остального
|-- Компоненты
Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
|-- Обсуждение Майнеров, их поставки и производства
Дополнительные разделы - Additional sections
|-- Встречи и поздравления
|-- Ищу работу
|-- Предлагаю работу
|-- Kуплю
|-- Продам
|-- Объявления пользователей
|-- Общение заказчиков и потребителей электронных разработок
Режим отображения:
Переключить на: Стандартный
·
Переключить на: Линейный
·
Древовидный
Подписка на тему
·
Сообщить другу
·
Версия для печати
·
Подписка на этот форум
Текстовая версия
Сейчас: 25th July 2025 - 14:17
Страница сгенерированна за 0.01298 секунд с 7
ELECTRONIX ©2004-2016