ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1085392 Топик полностью
IBAH (11.03.2021 21:51, просмотров: 263) ответил SciFi на ещё проще "memset(&s.b, 0, sizeof s.b);"
Как не странно Кортекс М0, пропускает такое, я думал свалится в HardFault 

const int asdf=1;

main()

{

*((int*)(&asdf))=asdf+1;

}


но переменная не модифицируется

/                              In section .rodata, align 4
      5          const int asdf;
   \                     asdf:
   \   00000000   0x00 0x00          DC8 0, 0, 0, 0
   \              0x00 0x00    /
/                *((int*)(&asdf))=asdf+1;
   \   000000A0   0x....             LDR      R0,??DataTable7_5
   \   000000A2   0x6800             LDR      R0,[R0, #+0]
   \   000000A4   0x1C40             ADDS     R0,R0,#+1
   \   000000A6   0x....             LDR      R1,??DataTable7_5
   \   000000A8   0x6008             STR      R0,[R1, #+0]/