-
- Ответы всем: Точка опоры(14586 знак., 18.10.2015 12:48)
- смотрите внимательнее, в первом случае код Mahagam(531 знак., 18.10.2015 14:55)
- Допустим. Но почему явное занесение константы в ОЗУ зависит от расположения этого фрагмента внутри main'а? - Точка опоры(18.10.2015 15:33)
- Вопрос, конечно, интересный: SciFi(523 знак., 18.10.2015 16:58)
- Volatile указывает на наличие побочных эффектов. Любых. *исправил Скрипач(108 знак., 18.10.2015 17:04 - 19.10.2015 18:12)
- "Побочных эффектов. Любых." Это вы додумали, уважаемый. Стандарт говорит "побочные эффекты - это изменения в среде исполнения". ИМХО, они специально дыму напустили, потому что внятно эту концепцию не сформулируешь. SciFi(224 знак., 19.10.2015 18:22)
- А что есть оптимизация? Вот операцию |= компилятор даже для volatile переменных может сделать как setb x,y, хотя по идее должен делать честные rmw. Это оптимизация? - Олдфаг(20.10.2015 09:42, )
- Не только переменная, но и все операции с ней. Не будет ни common subexpression, ничего. *Вы же сами привели, ниже, цитату из стандарта. Она витиевата, но вполне читабельна. - Скрипач(19.10.2015 18:46 - 18:48)
- Цитата читабельна, но бессмысленнабельна. SciFi(332 знак., 19.10.2015 19:21)
- Есть понятие "контекст". Он делится на: локальный (внутри функции), файла (.с + инклуды) и глобальный (+зарезервированные имена, как минимум). Скрипач(872 знак., 20.10.2015 10:05 - 10:11)
- Спасибо, это и так понятно и неинтересно. Я всего лишь пытаюсь все эти махания руками соотнести с текстом стандарта, вот и всё. SciFi(977 знак., 20.10.2015 10:08 - 10:16)
- Не следует выбрасывать слово states. Под "изменением состояния" может подразумеваться все, что угодно. Это могут быть как "изменения первого рода", так и "изменения второго рода". Но, опять же, в данном контексте следует понимать первое. И Bill(110 знак., 20.10.2015 10:25)
- Побочные (по-боку, за бортом) эффекты - последствия выполнения команды (statement), которые не уложились в контекст (локальные переменные, переменные модуля, глобальные переменные) и поэтому не видны компилятору. - Скрипач(20.10.2015 12:56)
- По степени мутности сей пассаж способен тягаться с оригинальной формулировкой в стандарте :-) - SciFi(20.10.2015 12:59)
- Легко. Я бы просто дополнил текст стандарта вот этим (хотя бы в виде сноски) --> - SciFi(20.10.2015 10:32, ссылка)
- Хм ... я думаю, что всегда есть некий документ (закон, стандарт и т.д.), и есть комментарии к нему. Сам по себе документ должен быть кратким, а комментарии потому и называются комментариями, что в них подробно разъясняются положения данного Bill(25 знак., 20.10.2015 10:41)
- Такой документ с комментариями называется "С++
за 24 часадля чайников" 8) - Скрипач(20.10.2015 12:51)- Вообще-то я полагаю, что стандарты пишутся специалистами и для специалистов, и они должны быть понятны и тем и другим без комментариев. Или нет? - Bill(20.10.2015 15:02)
- Да. Экспертами по программированию компиляторов, для экспертов по программированию компиляторов. Скрипач(61 знак., 20.10.2015 15:19)
- Нет, но я представляю как они работают. Был опыт по проектированию компилятора для 8080/z80. Но это было очень давно. - Bill(20.10.2015 17:09)
- У меня тоже. В светлую студенческую пору :) А потом мне продали книжку по LEX/YACC :))) - Скрипач(20.10.2015 19:05)
- Нет, но я представляю как они работают. Был опыт по проектированию компилятора для 8080/z80. Но это было очень давно. - Bill(20.10.2015 17:09)
- Да. Экспертами по программированию компиляторов, для экспертов по программированию компиляторов. Скрипач(61 знак., 20.10.2015 15:19)
- Вообще-то я полагаю, что стандарты пишутся специалистами и для специалистов, и они должны быть понятны и тем и другим без комментариев. Или нет? - Bill(20.10.2015 15:02)
- Нет. Этот стандарт самодостаточен, пояснения в виде отдельного документа не предполагаются. Пояснения возникают в виде рабочих документов при выработке следующей версии стандарта, и они касаются только отличий от предыдущей версии. - SciFi(20.10.2015 10:45)
- Такой документ с комментариями называется "С++
- Хм ... я думаю, что всегда есть некий документ (закон, стандарт и т.д.), и есть комментарии к нему. Сам по себе документ должен быть кратким, а комментарии потому и называются комментариями, что в них подробно разъясняются положения данного Bill(25 знак., 20.10.2015 10:41)
- Побочные (по-боку, за бортом) эффекты - последствия выполнения команды (statement), которые не уложились в контекст (локальные переменные, переменные модуля, глобальные переменные) и поэтому не видны компилятору. - Скрипач(20.10.2015 12:56)
- "side effects, which are changes in the state of the execution environment" Скрипач(376 знак., 20.10.2015 10:14 - 10:20)
- Не следует выбрасывать слово states. Под "изменением состояния" может подразумеваться все, что угодно. Это могут быть как "изменения первого рода", так и "изменения второго рода". Но, опять же, в данном контексте следует понимать первое. И Bill(110 знак., 20.10.2015 10:25)
- Спасибо, это и так понятно и неинтересно. Я всего лишь пытаюсь все эти махания руками соотнести с текстом стандарта, вот и всё. SciFi(977 знак., 20.10.2015 10:08 - 10:16)
- Что именно непонятно? Вроде данный вопрос столько раз обсуждался. Или нет? - Bill(20.10.2015 09:31)
- Но тема-то интересная. А что непонятно, я сформулировал в виде вопроса. Вы его читали? Или нет? - SciFi(20.10.2015 09:46)
- Это прост термин side effect(60 знак., 21.10.2015 15:02, )
- Но тема-то интересная. А что непонятно, я сформулировал в виде вопроса. Вы его читали? Или нет? - SciFi(20.10.2015 09:46)
- Есть понятие "контекст". Он делится на: локальный (внутри функции), файла (.с + инклуды) и глобальный (+зарезервированные имена, как минимум). Скрипач(872 знак., 20.10.2015 10:05 - 10:11)
- Цитата читабельна, но бессмысленнабельна. SciFi(332 знак., 19.10.2015 19:21)
- Под побочными эффектами имеются ввиду ошибки компиляции? ;) Их 5! VL(613 знак., 19.10.2015 08:23, )
- Отличная фраза, только хз что означает. "side effects, which are changes in the state of the execution environment" - поди разберись. Короче, это всё 3,14здёж и провокация, но volatile здесь должен решить проблему. - SciFi(18.10.2015 17:40)
- "Побочных эффектов. Любых." Это вы додумали, уважаемый. Стандарт говорит "побочные эффекты - это изменения в среде исполнения". ИМХО, они специально дыму напустили, потому что внятно эту концепцию не сформулируешь. SciFi(224 знак., 19.10.2015 18:22)
- Volatile указывает на наличие побочных эффектов. Любых. *исправил Скрипач(108 знак., 18.10.2015 17:04 - 19.10.2015 18:12)
- это уже от умений и знаний компилятора зависит. циклы подвергаются отдельной оптимизации. - Mahagam(18.10.2015 16:52)
- Вопрос другой: зачем, с какой целью нужно дразнить режим оптимизации единственным использованием переменной, спрашивается? - De_User(18.10.2015 16:02 - 16:28)
- Уже писал, что это оставил "на вырост". Если по усложнению алгоритма понадобится менять значения стартовое и приращения - почти всё готово. А также - не вполне понимаю, как правильно написать xxx_freq=round(const1*const2/const3). Поэтому сперва Точка опоры(51 знак., 18.10.2015 21:12 - 21:15, картинка)
- Гы, ржака! "Режим оптимизации" - это искусственный разум, вышедший из-под контроля? Я-то думал, что есть
3 закона робототехникистандарт языка Си :-) - SciFi(18.10.2015 16:08)
- Вопрос, конечно, интересный: SciFi(523 знак., 18.10.2015 16:58)
- Допустим. Но почему явное занесение константы в ОЗУ зависит от расположения этого фрагмента внутри main'а? - Точка опоры(18.10.2015 15:33)
- смотрите внимательнее, в первом случае код Mahagam(531 знак., 18.10.2015 14:55)
- Ответы всем: Точка опоры(14586 знак., 18.10.2015 12:48)