Вопрос

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

Коротко выполняя тупое поиск и замену на «статическую» -> «статический предыдущий», есть ли способ предотвратить использование всех «статических» данных от записи, много как данные постоянных строковых данных могут быть сделаны явным образом записи?

Я использую The Shoolchain GCC, цель разработки X86.

Это было полезно?

Решение

В некоторых из используемых вами библиотек, которые вы используете. (Например, стандартные библиотеки C и C ++). Создание этого постоянного было бы плохо.

Вероятно, лучше пройти свой код и изменить вещи вручную.

Вы можете использовать nm Чтобы получить список символов в вашем .o файлы. в nm вывод, первый столбец дает тип символа; письма B, C, D, G или S Укажите записи с письменными данными. Последний столбец дает (Mangled) имя переменной. Можно написать маленький скрипт для анализа nm вывод и искать их.

Другие советы

Я думаю, что лучший способ добавляет «const» на все переменные. Вы можете использовать «#define Static Static const» (обратите внимание, что оно сломалось, где вы уже изменили его), но я не рекомендую сделать это (сделаю ваш код гораздо менее читаемым и, возможно, сломает некоторые вещи, и вы выиграли T Быть в состоянии объявлять статические функции).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top