при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
uint8_t arr[16];
Никто вам загадки не загадывает, делать нам больше нечего, только загадки придумывать. Сами сначала изучите, кто и как формирует исполняемый код вашей программы, а потом уже дуйте губёшки и фыркайте.ARV писал(а):так и будете загадки мне загадывать?
Код: Выделить всё
#pragma pack(push, 2)
typedef struct{
bool fld1 : 1;
bool fld2 : 1;
} my_struct;
#pragma pack(pop)Код: Выделить всё
SECTIONS
{
.bkpsram :
{
. = ALIGN(1);
KEEP(*(.bkpsram))
. = ALIGN(4);
} >BKPSRAM
......
.plc_params :
{
. = ALIGN(2);
KEEP (*(.plc_params))
/*. = ALIGN(2);*/
} >SECTOR_1_2
........
Видимо, то, как работает процессор, вы не поняли.ARV писал(а):PASCAL, в котором если массив байтный - можно быть на 100500% уверенным, что там будут именно байты
Код: Выделить всё
typedef union{
struct{
uint8_t field0 : 1;
...
uint8_t field15 : 1;
}
uint8_t data[2];
} fields_t;Не уйдут. Компилятор учитывает выравнивание.linux_rulezz писал(а):при попытке обращения к невыровненным данным и в хардфолт уйдут!.
Код: Выделить всё
_Bool a = 10;
printf("%i", ++a);Код: Выделить всё
bool endPosition;
if(GetPosition() == 50) endPosition = true;
else endPosition = false;
Код: Выделить всё
int endPosition;
if(GetPosition() == 50) endPosition = 1;
else endPosition = 0;