Показать сообщение отдельно
Старый 24.01.2017, 20:07   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 159
Благодарил(а): 15 раз(а)
Поблагодарили: 665 раз(а) в 607 сообщениях
По умолчанию Ответ: Создание проекта С++

Цитата:
Сообщение от Amidamaru Посмотреть сообщение
Извините за мою непонтяливость, но "Конечно нет" это: Глобальные переменные НЕ сохраняются в постоянной памяти, или же они НЕ сбрасываются после перезапуска контроллера?

Си/C++ - это язык третьего поколения. А это значит, что компилятор вас "за ручку" водить не будет. Всё делаете сами.

Сами память выделяете, сами очищаете её. Сами сохраняете туда значения и читаете их оттуда. И в файл сохраняете, если вам надо. Вовремя сохраняете - это отдельная история. С проверкой, записалось ли и обработкой всех ошибок записи. Причём сохранение в файл - это не то, чтобы "выплюнул куда-то данные и забыл". Это нужно открыть устройство, проверить носитель, проверить файловую систему, проверить возможность записи и наличие свободного места. И только потом создавать или модифицировать файл. Который потом корректно закрывать, скидывать буферы (тоже вовремя!). И если на каком-то шаге будет отказ, а он обязательно будет рано или поздно, этот отказ нужно корректно разрулить.

Судя по вашим вопросам, вы с какого-то ЯВУ одного из последних поколений пришли. Где шаг вправо-влево считается побегом, а прыжок на месте - провокацией. И всё выполнение происходит в "песочнице" с сохранением состояния программы при её закрывании.

Си/C++ не такой.

Он не то, чтобы на нашем контроллере не такой. Или в Линуксе не такой. Он по жизни не такой. Особенно Си.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием