ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 июля
548474 Топик полностью
SciFi (22.09.2014 14:37, просмотров: 131) ответил Vit на ложь:) компиляторостроителю неизвестно, что будет лежать по неизвестному на момент компиляции адресу, потому он не сможет в регистр загнать константу. насчет выбросить присваивание - отдельный балет
Вот реалистичный пример: void wait_until_buf_contains_marker(uint8_t marker) { for (;;) { int i; for (i = tail; i != head; ) { if (buf[++i & (BUFSIZE - 1)] == marker) { return; } } } } Компилятор вполне может вынести за цикл кеширование содержимого буфера. Это вполне оправданно, если буфер сидит в медленной памяти. Вывод: буфер должен быть объявлен как volatile.
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้