Микроконтроллеры | AVR начинающим - вопросы и ответы |
|
---|---|---|
Можно. int x = 2; ((scnew *)&чего-нибудь)->bit.bitnum[x]; |
|
|
Все моск перегрелся struct disp{ struct display *ptrMax; Пытаюсь запомнить адрес : Хочу потом сделать ИЛИ с нужными мне битами. 2GM Разве обязательно засовывать объединение bit в структуру scnew , а так не получится : |
|
|
Так не пробовали? ptrMax = (display *)&display.struc_dsp.u_scale.m_scale[4-NumByte]; |
|
|
Теперь так ругается: break; |
|
|
Alexey: 2GM Разве обязательно засовывать объединение bit в структуру scnew , а так не получится : в данном случае так нельзя, поскольку вы пропускаете один уровень адресования, а именно bit. Выше я вам привел пример, как сделать обращение к элементу структуры как по имени, так и по адресу в массиве. Привел так, как я понял ваш вопрос, если у вас нет нужды обращаться по имени, то юнион можно опустить. |
|
|
Alexey: Теперь так ругается: Ну правильно ругается, попробуйте так
Ну, возможно надо будет изменить определение указателя на char *ptrMax, зависит от компилятора. А здесь
вы пытаетесь взять структуру, на которую указывает ptrMax, сделать ИЛИ с переменной MaxUrov и сохранить структуру на том же месте. Но структура содержит много элементов, с каким именно вы бы хотели сделать ИЛИ? Чтобы так делать, надо определить свой собственный класс, и перегрузить функцию ИЛИ для этого класса. Боюсь, это можно сделать только в С++. |
|
|
GM: Но структура содержит много элементов, с каким именно вы бы хотели сделать ИЛИ? GM: попробуйте так GM: изменить определение указателя |
|
|
Какая-то мешанина, приведите весь фрагмент целиком. И скажите словами, что вы хотите сделать. Да, и сделайте теги каждой структуры прописными буквами, сами же скоро будете путаться, если уже не. |
|
|
GM: И скажите словами, что вы хотите сделать |
|
|
Ну вот вам пример, проверил на CCS3.1
|
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |