ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
7 ноября
853553 Топик полностью
Bhg2 (06.07.2018 15:18, просмотров: 513) ответил sladkoejka на Я не вижу смысла с вами спорить. Насчёт volatile указателей пример я вам привел. Продублирую и тут:
Keil C 8051: без volatile:
   1          #include <stdio.h>
   2          
   3          void main( void )
   4          {
   5   1          int x = 123;
   6   1          *( int*)&x;
*** WARNING C275 IN LINE 6 OF MAIN.C: expression with possibly no effect
   7   1      }
             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 3
                                           ; SOURCE LINE # 4
                                           ; SOURCE LINE # 5
0000 750000      R     MOV     x,#00H
0003 75007B      R     MOV     x+01H,#07BH
                                           ; SOURCE LINE # 6
                                           ; SOURCE LINE # 7
0006 22                RET     
             ; FUNCTION main (END)
c volatile:
   1          #include <stdio.h>
   2          
   3          void main( void )
   4          {
   5   1          int x = 123;
   6   1          *(volatile int*)&x;
   7   1      }

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 3
                                           ; SOURCE LINE # 4
                                           ; SOURCE LINE # 5
0000 750000      R     MOV     x,#00H
0003 75007B      R     MOV     x+01H,#07BH
                                           ; SOURCE LINE # 6
0006 AE00        R     MOV     R6,x
0008 AF00        R     MOV     R7,x+01H
                                           ; SOURCE LINE # 7
000A 22                RET     
             ; FUNCTION main (END)