-
- Разные типы. volatile делает тип другим, причём не только по формальному признаку, но и по сути: в зависимости от оптимизации и особенностей программы может работать по-другому. - SciFi(19.12.2018 16:01)
- Не нужно писать volatile лишний раз. В конце концов есть понятие memory barrier, на котором всё запишется как надо, если речь про указатель. volatile имеет смысл для самой переменной скорей, т.е. её могут читать в цикле в пределах функции, fk0(225 знак., 19.12.2018 23:40)
- Кстати, есть там "sequence points", подзабыл. Снова надо разбираться... - SciFi(20.12.2018 00:27)
- Но с другой стороны, если описать в одном модуле написать valatile int a; а в другом extern int a; или наоборот, ошибки не будет. Сам так часто делаю. - IBAH(19.12.2018 18:31)
- По сути усвоить что разные типы. Как вы решаете такие ситуации, когда перемення volatile, а функция принимает не volatile? Не ужели везде дописывать - Constantin24(19.12.2018 16:16)
- Не хотите дописывать - не передавайте volatile-переменные в параметрах функции, пусть они остаются глобальными. Ведь volatile - не формализм, а информация о том, как с этой переменной надо работать. И потому функции это необходимо знать. В Ксения(288 знак., 19.12.2018 18:01)
- Если вам нужно, чтобы функция работала с переменной, как будто она volatile, это нужно в ней прописывать. Иначе volatile потеряется при передаче аргумента, и при оптимизации может заглючить. - SciFi(19.12.2018 16:21)
- Не нужно писать volatile лишний раз. В конце концов есть понятие memory barrier, на котором всё запишется как надо, если речь про указатель. volatile имеет смысл для самой переменной скорей, т.е. её могут читать в цикле в пределах функции, fk0(225 знак., 19.12.2018 23:40)
- Разные типы. volatile делает тип другим, причём не только по формальному признаку, но и по сути: в зависимости от оптимизации и особенностей программы может работать по-другому. - SciFi(19.12.2018 16:01)