[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
то есть "чиста на с" я в примере не увидел ни одной конструкции (кроме #define :) )
канешна все переменные считать битовыми структурами круто, но неверно (если это тема для дискусии могу аргументировать)
всякие @ - (собаки) от НТ-С тоже мало относятся к С, это типа "абсолютная адресация" - вобщем-то маразм, но для архитектуре пика скорее плюс (в ассемблере это переводится в константы .EQU )
после @ должно стоять ЧИСЛО задающее адрес : в Вашем случае задайте Key в виде такой же абсолютной адресации или просто цифры (что одно и то же) и все будет ОК
bit это тоже очень далеко от С, это специфик фор ПИК унд НТ-С и на них есть существенные ограничения
к примеру нет локальных bit - одним словом это та же абсолютная адресация что и @ (то есть на момент компиляции положение бита в памяти фиксировано)
страно что компилер не ругнулся на
struct bits
{
bit b0, b1, b2, b3, b4, b5, b6, b7;
};
видимо он просто проигнорировал это (нужно посмотреть)
---------------------------
при всем моем уважении, все-таки прежде чем ругать НТ-С (в котором IMHO к такой жопе как ПИК прикрутили вполне удобные ручки) следовало бы разобратся
---------------------------
для обращения к битам вполне можно пользоватся BYTE&MASK BYTE&=MASK BYTE^=MASK и так далее HT-C генерит правильный код
или же правильно описанным битовым полем пользовался, при этом поля могут быть не 1 бит, а 2,3,4.. (вроде нормальный код - я детально не смотрел, но вроде не тормозит), при этом не понятно почему Turis ограничил битовые поля одним байтом - можно и больше
E-mail: info@telesys.ru