Вт апр 02, 2019 12:32:29
typedef struct {
parametr_int SetPoint1;
parametr_int DacPoint1;
parametr_int SetPoint2;
parametr_int DacPoint2;
parametr_int AdcPoint1;
parametr_int AdcPoint2;
} Calibrations;
typedef union {
parametr_int m[sizeof(Calibrations)/sizeof(parametr_int)];
Calibrations n;
} uCalibrations;
uCalibrations С1;
C1.n.SetPoint1=2;
C1.m[0]=2;
Еще пример
typedef union {
uint8_t u8[2];
uint16_t u16;
} data;
data Ds;
Ds.u16=0xEEDD;
uint8_t r;
r=Ds.u8[1];// тот же результат r=0x00FF & (Ds.u16>>8);
Вт апр 02, 2019 12:59:42
long y = (long *)(&x)
long *y = (long *)(&x)
Вт апр 02, 2019 13:23:21
Можно написать так :Myp3ik писал(а):Компилятор выдаст предупреждение о разности типов.
long y = (long)(&x);
Вт апр 02, 2019 13:26:06
uint16_t x;
uint16_t y;
((uint8_t *)(&y))[0] = ((uint8_t *)(&x))[1];
((uint8_t *)(&y))[1] = ((uint8_t *)(&x))[0];
uint16_t x;
uint16_t y;
y = ((x & 0x00FF) << 8) | ((x & 0xFF00) >> 8);
Вт апр 02, 2019 13:38:37
Вт апр 02, 2019 13:41:50
long y = (long)(&x);
Вт апр 02, 2019 13:44:15
uint16_t x = 0x1234;
x = __REV16(x);
// x = 0x3412;
Вт апр 02, 2019 14:26:39
Вт апр 02, 2019 14:56:42
можно то можно, лишь бы понимать, что именно будет в итоге сделано - то ли, что хотелось?
Что это такое?
Вт апр 02, 2019 14:58:59
ага. а иногда думаешь, что он обкуренный ушлёпокYS писал(а):код, сгенерированный AVR-GCC. Мне временами казалось, что компилятор разумен.
Вт апр 02, 2019 15:02:55
Напишите ссылку свой свой блог.
Ср апр 03, 2019 10:13:45
Ср апр 03, 2019 12:58:37
Ср апр 03, 2019 13:06:05
а я задаю себе вопрос: а зачем простой переменной присваивать адрес другой? это ведь операция, наиболее характерная для переменной-указателя. отсюда и сомнения: а на самом ли деле написавший это хотел поместить адрес в простую переменную, или по ошибке звездочку потерял?Аlex писал(а):Вариантов других не вижу...