при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
typedef const __flash char fstr[];
typedef const __flash char* pfstr;
#define FSTR(x) (fstr){x}
typedef const __flash struct {
pfstr name;
prop_type_t id;
bool* value;
pfstr items;
} prop_bool_t; // определяет тип prop_bool_t
#define PROP_BOOL(n, v, i) &(prop_bool_t){.name = (fstr){n}, .id = PROP_BOOL, .value = &v, .items = i}
Код: Выделить всё
bool b1;
const __flash pfstr pwr_str[] = {FSTR("OFF"), FSTR("ON")};
const __flash void * const __flash prop_array[] = {
PROP_BOOL("POWER", b1, pwr_str)
}Код: Выделить всё
const __flash char str_on[] = "ON";
const __flash char str_off[] = "OFF";
const __flash char str_power_trm[] = "POWER_TRM";
const __flash char str_power_rcv[] = "POWER_RCV";
const __flash char __flash *strs_pwr[] = { str_on, str_off };
struct prop_bool_t{
const char __flash *name;
char id;
bool *value;
const char __flash * __flash *items;
};
bool b1,b2;
const __flash prop_bool_t pwr[] = { { str_power_trm, 1, &b1, strs_pwr },
{ str_power_rcv, 2, &b2, strs_pwr } };Код: Выделить всё
LDI R30, LOW((pwr + 12))
LDI R31, HIGH((pwr + 12))
LPM R18, Z+
LPM R19, Z
LDS R16, b2
LDI R17, 0
LSL R16
ROL R17
ADD R18, R16
ADC R19, R17
MOVW R31:R30, R19:R18
LPM R16, Z+
LPM R17, Z
не понял - это хорошо или плохо?VladislavS писал(а):Ух, забористо!
хм... логично.NStorm писал(а):теперь item сделали таким. Я предложил просто с другой стороны подойти - разыменовывать при передаче
и не просите! я от его синтаксиса классов (не говоря про шаблоны) просто умираю. уж лучше руками на Си...VladislavS писал(а):переходите уже на компилятор С++
нетVladislavS писал(а):Вы читать умеете?
и чем это мне помогло бы? вы могли заметить, что и на варнинг я отреагировал вполне адекватно, только не уразумел, в чем беда и где. чем бы мне еррор помог?VladislavS писал(а):Уж подобный варнинг для него точно смачный еррор будет