2013-07-10 2 views
0

В каком количестве команд отображаются глобальные и статические переменные? Как известно, локальные или автоматические переменные извлекаются в 1 инструкции микропроцессора, сколько команд задано глобальными и статическими переменными? Оно стоит так же, как выбор динамических переменных из кучи? или немного меньше.В каком количестве команд отображаются глобальные и статические переменные?

+5

Я уверен, что спецификация C не указывает, сколько инструкций требуется для выборки переменных, и что количество необходимых им команд является компилятором и зависит от реализации. –

+5

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

+1

Время, чтобы начать просмотр сборки и чтения документации по процессору. –

ответ

0

В зависимости от архитектуры и контекста компьютера. Спецификация C не указывает это, и это будет зависеть от того, какой компилятор и какие параметры оптимизации вы используете.

10

Ответ может быть один из:

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

(b) Многие, поскольку глобальная переменная находится в динамической библиотеке, которая должна быть загружена и связана до того, как переменная будет доступна.

(c) Несколько, поскольку адрес переменной должен быть собран из деталей и/или информации о перемещении.

(d) Один из них, поскольку адрес вычисляется из непосредственных данных в инструкции и/или данных уже в регистрах, таких как глобальный указатель данных.

(e) Нуль, поскольку оптимизация сохранила переменную в регистре из предыдущих операций.

1

В каком количестве команд отображаются глобальные и статические переменные?

В любом месте от нуля (уже в кеше в регистре) для многих в зависимости от многих факторов.

Как мы знаем локальный или автоматические переменные выбираются в 1 инструкции микропроцессора [...]

Мы не знаем об этом, так как это не так для большинства объектов больше, чем какая-то реализация -специфический предел. И тогда есть C Переводчики где этот предел может быть 0 и все загрузок требуют десятков, если не сотни инструкций.

Смежные вопросы