Re[3]: Какой язык имеется в виду? Видимо С++?
От: Erop Россия  
Дата: 20.01.09 19:23
Оценка: 1 (1)
Здравствуйте, ra88, Вы писали:

Для начала не кисло бы описать
1) Язык (С или С++)
2) Компилятор
3) Платформу

Я отвечаю в предположении: С++, MSVC, OS Windows XP

R>Я могу путаться в терминологии, немного не понятно, что ты имеешь ввиду? Под полями в данном случае ты понимаешь поля структуры? Или что-то иное? Вопрос был, куда и с какой скоростью функции обращаются за глобальной статической переменоой? Есть что-нибудь вроде таблицы глобальных переменных? Если есть, то где она и как быстро до неё добраться?


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

E>>В общем случае подход со статической переменной быстрее. Особенно если ты будешь свою структуру инициализировать агрегатом, так как тогда у компилятора будут шансы догадаться до значений и по адресам вообще не лазить...


Что такое агрегат -- знаешь? Это конструкция типа
const static struct MyData {
    int Field1;
    int Field2;
    int Field3;
} = { 
   1, 2, 4 // это вот и есть агрегат
};
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.