У меня есть массив. Я использую его из основной программы. Я использую его из ISR. Должен ли я всегда определять его как изменчивый? Какая оптимизация может применяться компилятором к моему массиву?Использование массивов и летучих
0
A
ответ
2
Если вы объявите int
, а затем прочитайте его дважды, компилятор сможет «запомнить» первое прочитанное и не потрудиться его прочитать.
static int value = 0;
void ISR() {
++value;
} // ISR()
int main() {
while (value==0) {
// Do nothing
} // while
} // main()
компилятор мог читать value
один раз, а затем проверить его снова и снова, всегда равным нулю! ISR изменяет его, но компилятор не «видит» это изменение.
Если вы отметите value
в volatile
, то компилятор будет всегда читать: он никогда не будет помнить:
static volatile int value = 0;
Это не имеет значения, если это массив: та же проблема может произойти.
static volatile int array[256];
Смежные вопросы
- 1. Использование летучих коллекций и массивов в Java
- 2. Летучих переменные и использование блоков синхронизации
- 3. Использование летучих переменных в Java
- 4. Относительно летучих и синхронизированных
- 5. Использование летучих (Thread.VolatileRead/Thread.VolatileWrite) в C#
- 6. Использование Volatile.Write() вместо летучих в C#
- 7. C# - Использование летучих ключевых слов против блокировки
- 8. Использование летучих в случае устройств с памятью?
- 9. Будет ли использование летучих и атомных всегда обеспечивать безопасность потока
- 10. Некоторые сомнения относительно летучих и атомных классов?
- 11. Использование структур и массивов
- 12. Использование массивов и методов
- 13. Использование функций и массивов
- 14. Калькулятор и использование массивов
- 15. Использование fscanf() и массивов
- 16. Что такое конструктор летучих копий?
- 17. Функции летучих элементов C++
- 18. потеря константных летучих классификаторов
- 19. поточный сейф без летучих
- 20. Java летучих Безразлично `работы
- 21. Точное значение и эффекты летучих в Java?
- 22. летучих ключевым слово и RAII идиома (C++)
- 23. Использования летучих переменных и семафоров - Java
- 24. Массивы PHP и использование массивов
- 25. Использование массивов и hitTest - AS3
- 26. Использование вложенных классов и массивов
- 27. Wordpress и использование условных массивов
- 28. Использование массивов и строк вместе
- 29. Использование больших массивов и памяти
- 30. Использование стеков и статических массивов
Спасибо. Я знаю это. Я задавался вопросом только о массивах. Если вы говорите «не имеет значения», я буду использовать «изменчивый». – koluna