локальная статическая переменная предоставляется встроенными компиляторами? - PullRequest
2 голосов
/ 12 февраля 2010

я работаю над библиотекой, которая была бы хороша и для встроенных систем но я не очень глубоко во встроенной разработке, так что мой вопрос

- большинство встроенных компиляторов, способных справляться с локальными статическими переменными - что я бы тогда просто предположил при дальнейшей разработке ИЛИ ЖЕ есть #define, который я могу использовать для #ifdef для создания глобальной переменной в случае

ТНХ

Ответы [ 4 ]

2 голосов
/ 12 февраля 2010

Они должны, так как локальные статические переменные являются частью стандарта C.

Конечно, ничто не мешает им создавать C-подобный язык, который не обладает всеми функциями. Но поскольку это было бы нестандартно, то способ определения отсутствия функции также будет нестандартным.

1 голос
/ 12 февраля 2010

Поскольку переменные static являются частью стандарта, вы должны быть в безопасности.

Проблема с поддержкой, вероятно, заключается не в вашем компиляторе (большинство из которых хорошо справляются со стандартом), а в любом коде, который вам нужно настроить для среды выполнения. Перед загрузкой кода C убедитесь, что при загрузке кода правильно распаковываете исполняемый файл, данные только для чтения, данные для чтения и записи и разделы с нулевым инициализацией исполняемого файла.

0 голосов
/ 12 февраля 2010

Да. Локальная статика на самом деле мало чем отличается от глобальных, когда компилятор завершит работу с вашим исходным кодом. Я мог бы придумать экзотические процессоры, где глобальные проблемы были бы проблемой, но я сомневаюсь, что вы столкнетесь со многими.

Действительно интересная вещь о глобалах на встроенных процессорах заключается в том, что у вас часто есть возможность, чтобы компилятор размещал их в ПЗУ, EEPROM и т. Д.

0 голосов
/ 12 февраля 2010

Локальные статические переменные являются частью стандарта C, так что да.

\ педантичный {

Если ваш код хорошо организован, с отдельными файлами (единицами компиляции) для разных подсистем, вам лучше иметь статическую переменную с областью действия файла. Это облегчит разделение кода, который использует его, на отдельные функции. Если код, использующий переменную, сложен, это позволит вам разбить его на более мелкие статические функции, которые легче читать, понимать и отлаживать.

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...