-
- Всё становится интереснее, если x, y, z еtс это не целочисленные переменные, а экземпляры классов с конструкторами/операторами присваивания от int и наличествующим кастом к int. Однако, писатели компиляторов это всё знают и всё работает корректно Apoheliy(74 знак., 12.04.2012 20:40, )
- Был прецедент? Или просто хочется кого-то сжечь? :-) - SciFi(12.04.2012 15:09)
- Хочется совершить самосожжение. - fk0(12.04.2012 15:17)
- Не надо, это больно. SciFi(69 знак., 12.04.2012 15:29, картинка)
- Но сначала сфотографировали на память - Mebius(12.04.2012 15:40)
- Наверно незнали что он программист. - T.Дocтoeвcкий(12.04.2012 15:32)
- Не надо, это больно. SciFi(69 знак., 12.04.2012 15:29, картинка)
- Хочется совершить самосожжение. - fk0(12.04.2012 15:17)
- что не так? - Vit(12.04.2012 14:59)
- Допустим t -- volatile или регистр. Компилятор вначале в b кладёт 0, потом в а из b, потом в t из a, (тут t меняется или у него read-only разряды...) потом в z из t. Потом глюки fk0(21 знак., 12.04.2012 15:05)
- А тех, кто не пользуется критическими секциями (SRWLock, Enter/LeaveCriticalSection, SpinLock etc) нужно сжигать на костре. - Apoheliy(12.04.2012 20:37, )
- Код в студию! - Bill(12.04.2012 16:05)
- А если еще с разрядностью переменных поиграть? Например переменная t имеет тип char, а x - int и присваиваем не 0, а 0x4000? Что попадет в x? - vmp(12.04.2012 15:37)
- Язык Си + говнокодеры + инквизиция == увлекательное шоу. - SciFi(12.04.2012 15:40 - 15:44)
- Умники могут сделать egrep '=[A-Z_a-z0-9]+=' *.c в своих исходниках и найти много удивительного. - fk0(12.04.2012 16:03)
- Язык Си + говнокодеры + инквизиция == увлекательное шоу. - SciFi(12.04.2012 15:40 - 15:44)
- ну дык дай абизяне гранату. кароче спич ниачём - Vit(12.04.2012 15:35)
- Что за компилятор? Логично было бы, что он должен обнулять все эти переменные независимо, а не делать многочисленные присваивания. - FDA(12.04.2012 15:19)
- Нифига не логично: стандарт не велит. - SciFi(12.04.2012 15:26)
- И где в стандарте такое написано? Там есть про порядок выполнения множественных присваиваний, но про обнуление переменных и про оптимизацию, которая при этом возможна, там вроде ничего не говориться. - FDA(12.04.2012 16:04)
- Это составное выражение. Аргументом следующего является результат предыдущего оператора "=". Компилятор может соптимизировать, но результат должен остаться как и в случае выполнения каждого присваивания "цепочкой". - Cepгeй Бopщ(12.04.2012 16:11)
- надо проверить в железе или симуляторе с регистром, где есть read-only биты... - FDA(12.04.2012 16:14)
- Не надо. Можно просто взглянуть на дизассемблер кода с volatile переменными. Хотя, после чтения стандарта, я бы пока отнёс эту ситуацию в категорию implementation-defined: SciFi(434 знак., 12.04.2012 16:53)
- Лучше не домысливать, ниженаписанное предупреждает о побочных эффектах. Если компиляторописатели трактуют это как право нарушить последовательность, они неправы. - Vladimir Ljaschko(12.04.2012 17:08)
- Да, фигню говорю. SciFi(1280 знак., 12.04.2012 17:41)
- Какие качественные грабли. Вспоминается "0 * * * * sh -c 'kill -11 $RANDOM'". - fk0(12.04.2012 18:09)
- Да, фигню говорю. SciFi(1280 знак., 12.04.2012 17:41)
- Лучше не домысливать, ниженаписанное предупреждает о побочных эффектах. Если компиляторописатели трактуют это как право нарушить последовательность, они неправы. - Vladimir Ljaschko(12.04.2012 17:08)
- Не надо. Можно просто взглянуть на дизассемблер кода с volatile переменными. Хотя, после чтения стандарта, я бы пока отнёс эту ситуацию в категорию implementation-defined: SciFi(434 знак., 12.04.2012 16:53)
- надо проверить в железе или симуляторе с регистром, где есть read-only биты... - FDA(12.04.2012 16:14)
- Это составное выражение. Аргументом следующего является результат предыдущего оператора "=". Компилятор может соптимизировать, но результат должен остаться как и в случае выполнения каждого присваивания "цепочкой". - Cepгeй Бopщ(12.04.2012 16:11)
- И где в стандарте такое написано? Там есть про порядок выполнения множественных присваиваний, но про обнуление переменных и про оптимизацию, которая при этом возможна, там вроде ничего не говориться. - FDA(12.04.2012 16:04)
- Нифига не логично: стандарт не велит. - SciFi(12.04.2012 15:26)
- Допустим t -- volatile или регистр. Компилятор вначале в b кладёт 0, потом в а из b, потом в t из a, (тут t меняется или у него read-only разряды...) потом в z из t. Потом глюки fk0(21 знак., 12.04.2012 15:05)