[...] Uyarı: tanımsız davranışı: Uçucu erişimlerin sırası bu hat tanımsız davranıştır Neden bu açıklama x.cpp xxxBu tanımlanmamış davranış için gerekçe nedir?
tanımlanmamış?
volatile short const *VREFINT_CAL = (short *) 0x1FFFF7BA;
ve
volatile STRUCT_ADC_DR *ADC_DR = (STRUCT_ADC_DR*) 0x40012440;
tarafından tanımlanan:
typedef struct
{
unsigned DATA : 16;
unsigned : 16;
} STRUCT_ADC_DR;
bunu mi derleyici konusunda emin olmadığı için beyanlar/ilklenmeleri olan
case 2:
Vdda = 3.3 * (*VREFINT_CAL)/ADC_DR->DATA;
uçucu elemanlar farklı davranabilir erişildikleri sırada? (Durum nedir?)
Ancak, hesaplamalar aynı önceliklere sahip olduğundan, hesaplamanın soldan sağa doğru yapılmasını sağlamamalı mıyım?
Eğer 'volatile' ne yaptığını bildiğinden emin misin:
mesele bazı geçici, sadece ara sıra noktası eklemek için kullanın çözmek için? Ve kodunuzda neden kodlanmış adresler var? – deviantfanSanırım bu, “standardı neden tanımsız bir davranış olarak açık bir şekilde işaretliyor/bunun mantığı nedir?”, Aksi takdirde çok sayıda insanın “standardı öyle” diyeceksin. – OMGtechy
İşlenenlerin değerlendirme sırası belirtilmemiş. – molbdnilo