demiurg_spb 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Пусть generic - общий. Что от это изменилось? Си он и в африке Си и теперь в нём есть часть (читай глава) затрагивающая ембед. А на gcc я ссылаюсь от того что это чуть-ли не единственный (ну может быть clang ещё) доступный, открытый и ОЧЕНЬ распространнённый компилятор для огромного количества архитектур. Люди, разрабатывающие его являются членами комитета, утверждающего и разрабатывающего стандарт Си. Чем не автортет? Не согласны - приведите свои доводы. Не нравится как я излагаю - читайте прикреплённые мной ссылки на оригиналы статей. Ради этого я их и прилагаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Пусть generic - общий. Что от это изменилось? Изменилось то, что вы думает об одном, а горите другое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Изменилось то, что вы думает об одном, а говорите другое. Согласен. Бываю грешен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Демиург, вы переоцниваете значимость техникал репортов. Переводя на русский это законопроект, который отнюдь не обязательно станет законом. Собственно в итоге не включают в станадарт большинство техникал репортов. Даже тех которые заметно более полезные чем выше перечисленные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Время покажет. Факт есть факт - в gcc уже реализовано и мало помалу обкатывается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
inventor 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба мдя задал простой вопрос и как всегда разгорелся срач на ровном месте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pnp_mechanic 2 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Вставлю и я свои 5 коп. Inventor, всегда можно посмотреть адрес конкретной переменной. Или константы . Средства Си это отлично могут делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aiwa 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба ....в сегодняшних компиляторах для этого нужно писать в заголовке перменнные с словом extern слово global помогло бы этого избежать По количеству нажатий global ничем не лучше extern. Зачем плодить синонимы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 30 декабря, 2017 Опубликовано 30 декабря, 2017 · Жалоба А почему глобальный конст во флеше, локальный в озу? Локальная const переменная может инициализироваться в момент вызова функции и на стадии сборки неизвестна. Нечего класть во флеш. А вот static const и глобальная const переменная известны уже на стадии сборки. PS: у меня однажды с одним коллегой драма случилась, он мне долго доказывал, что const ложится всегда исключительно в ro секцию (типа константа ЖЕ) и меняться в процессе исполнения не может (так как либо это флеш, либо область защищенная MMU). Если общение было в тот момент не по переписке, думаю и до мордобития дошло бы дело :smile3009: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 1 января, 2018 Опубликовано 1 января, 2018 · Жалоба Про применение volatile const для read only регистров переферии уже упоминалось? Кажется это довольно яркая демонстрация того, что const гарантирует в первую очередь ошибку компилятора при попытке что-то записать в такую переменную, а всё остальное это уже побочные эффекты, оптимизации и здравый смысл разработчиков компилятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 2 января, 2018 Опубликовано 2 января, 2018 · Жалоба Про применение volatile const для read only регистров переферии уже упоминалось? Кажется это довольно яркая демонстрация того, что const гарантирует в первую очередь ошибку компилятора при попытке что-то записать в такую переменную, а всё остальное это уже побочные эффекты, оптимизации и здравый смысл разработчиков компилятора. Я в свое время добавил вопрос о const в список вопросов для соискателей на собеседовании. Удивительно было то, что порой люди с опытом 5 лет и более, ничего кроме "const это константа неизменяемая" сказать не могут. А случай когда регистр периферии volatile const они обычно называют каким-то искусственным и притянутым за уши. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Локальная const переменная может инициализироваться в момент вызова функции и на стадии сборки неизвестна. Нечего класть во флеш. А вот static const и глобальная const переменная известны уже на стадии сборки.Локальная const переменная на стадии сборки известна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба int f(int a ) { const int c = 5; return a + c; } Локальная const переменная на стадии сборки известна. Сделали такой вывод потому, что можете видеть = 5 своими глазами? ;) Выразимся точнее Переменная c при любой настройке компилятора не ляжет во флеш потому, что у нее не static storage duration. Переменная c вообще не займет никакой памяти(даже на стеке) при включении оптимизации. Ознакомьтесь с https://en.wikipedia.org/wiki/Constant_folding Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Переменная c вообще не займет никакой памяти(даже на стеке)Как раз таки переменная c займет память программ. int f(int a ) {//при входе а копируем в аккумулятор const int c = 5;//этой строки в коде вообще может не быть. return a + c;//здесь будет выполнен может быть выполнен код типа такого add acc,#5, где #5 - это и есть наша const int c, и эта пятерка лежит во флешь. } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Ну так мы же про размещение данных говорим вроде как. return a + c;//здесь будет выполнен может быть выполнен код типа такого add acc,#5, где #5 - это и есть наша const int c, и эта пятерка лежит во флешь. Кстати говоря эта пятерка уже не переменная. Она станет частью инструкции в общем случае называемой Add Immediate. Т.е. не пятерка займет флеш, а инструкция у котой нужные биты будут равны пятерке. Так что не будем путать тёплое с мягким. Во флеше пятерки нет - есть инструкция, куда она входит. А если в вышеуказанном примере сделать const int с = 1 то вообще интересно может получится - вместо этого будет сгенерирована какая-нибудь инструкция inc acc которая инкрементирует аккумулятор. Тоже скажете, что константа во флеше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться