Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 05.03.2007, 16:21   #1
ramonchik
Senior Member
 
Регистрация: 01.03.2007
Возраст: 47
Сообщений: 131
Вес репутации: 450/52
ramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of light
Отправить сообщение для ramonchik с помощью ICQ
По умолчанию Вопрос новичка по Си

Более трех лет программирую на Асме. Решил попробовать очередной поект написать на Си. Сразу же столкнулся со следующей проблеммой. Необходимо создать глобальную переменную типа unsigned char (набор флагов), к которой можно обращаться и побитно и как к целому байту, т.е. сбрасыать или устанавливать биты как по отдельности, так и маской.

Селал так:

.
.
.

union
{
struct
{
unsigned Bit0:1;
unsigned Bit1:1;
unsigned Bit2:1;
unsigned Bit3:1;
unsigned Bit4:1;
unsigned Bit5:1;
unsigned Bit6:1;
unsigned Bit7:1;
};
unsigned char FlagsAll;
} FlagsBits;

.
.
.

Теперь для обращения к битам использую FlagsBits.Bit1 ... FlagsBits.Bit7,
а для обращения ко всему байту флагов FlagsBits.FlagsAll.
Все вроде работает, но есть вопрос.
Можно ли по другому обратиться к FlagsBits.FlagsAll?
В смысле, чтобы "одним словом". Ну например:

#define Flags FlagsBits.FlagsAll

В результате, вместо FlagsBits.FlagsAll можно в программе писать Flags, что нагляднее, если работаем с целым байтом, но зато в окне WATCH MPLABа этого самого Flags естественно не видно и приходится писать FlagsBits.FlagsAll.

Если уважаемые гуру не сочтут мой вопрос слишком глупым, буду рад любой подсказке/критике/помощи.
ramonchik вне форума   Ответить с цитированием
Старый 05.03.2007, 16:26   #2
Bill
Senior Member
 
Аватар для Bill
 
Регистрация: 26.02.2007
Адрес: Челябинск
Возраст: 69
Сообщений: 2,215
Вес репутации: 1898/87
Bill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant futureBill has a brilliant future
По умолчанию

Если сказать одним словом, то - можно.
Bill вне форума   Ответить с цитированием
Старый 05.03.2007, 16:26   #3
Alex B.
Super Moderator
 
Аватар для Alex B.
 
Регистрация: 25.02.2007
Адрес: Russia, SPb
Сообщений: 1,674
Вес репутации: 1729/80
Alex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant futureAlex B. has a brilliant future
Отправить сообщение для Alex B. с помощью Skype™
По умолчанию

ИМХО
"дефайнить" поля структуры/юниона некрасиво. Нагляднее как раз обращаться к полю
ИМХО
Alex B. вне форума   Ответить с цитированием
Старый 05.03.2007, 16:28   #4
ramonchik
Senior Member
 
Регистрация: 01.03.2007
Возраст: 47
Сообщений: 131
Вес репутации: 450/52
ramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of lightramonchik is a glorious beacon of light
Отправить сообщение для ramonchik с помощью ICQ
По умолчанию

Сасибо, Bill!
ramonchik вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос новичка по PIC Djacka Вопросы начинающих 4 21.03.2009 02:50
Вопрос по GSM-модемам и _организации_ работы с ними на PIC Максим2008 Продукция MICROCHIP 17 21.11.2008 04:02
Вопрос по СИ (TRISD&=~(1<<9)) DenisG Продукция MICROCHIP 7 28.05.2008 21:11
50-ти канальный GPS-модуль по технологии u-box 5 (LEA-5H) кто пробовал? (+ вопрос по GPS-антенне) Picozoid Общетехнические вопросы 13 26.05.2008 00:56
Вопрос по Си Online Продукция MICROCHIP 17 09.05.2008 09:43


Часовой пояс GMT +3, время: 08:26.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot