Форум программистов, компьютерный форум CyberForum.ru

Раннее и позднее связывание - C++

Восстановить пароль Регистрация
 
FarStar
Заблокирован
12.04.2013, 00:01     Раннее и позднее связывание #1
Вот компилятор статическую функцию как бы компилирует ранним связыванием, а динамическую - поздним.
Во многих учебниках говорят, что если есть функция раннего связывания, то её адрес в памяти известен на этапе компиляции. Я чё то не могу понять, как может быть известен адрес функции на этапе компиляции. Нет, конечно понятно, что Ahead компиляторы сразу преобразуют исходный код в машинный код данной платформы, но как может быть известен заранее адрес функции? Тоесть грубо говоря, я компилирую статическую функцию, компилятор типа сразу присваивает её адрес памяти, тоесть он как бы уже в бинарнике вшит, потом я докупаю оперативки на своё комп + пару новых хардов или ещё чего, запускаю свою программу из exe бинарного файла, в котором так сказать адрес функции моей уже известен и выходит, что на моей машине то адреса памяти уже изминились и этот адрес моей функции уже занять Такое может быть или чё то я не догоняю? Или имеется ввиду, когда говорят про то, то адрес известен на этапе компиляции, что он известен как бы относительно, тоесть известно, что вся программа занимает столько то заранее известного места и этот блок памяти располагается уже в свободной оперативке, а там уже, относительно как бы стартового адреса блока в оперативке уже вычисляется так сказать мой заранее известный адрес? ?????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 00:01     Раннее и позднее связывание
Посмотрите здесь:

C++ Позднее и раннее связывание
C++ Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B
C++ как заюзать класс определенный позднее
C++ связывание 2-х классов
Связывание библиотек C++
Связывание классов C++
Проверить, содержится ли последнее введенное число среди введенных раннее элементов массива C++
C++ Найти в массиве сведений о компьютерах такой, который был выпущен позднее других

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
12.04.2013, 02:57     Раннее и позднее связывание #2
Не путайте теплое с мягким.

Раннее и позднее связывание и статическое и динамическое связывание - это разные и независимые вещи.

1. Раннее и позднее связывание

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

Например, при покупке авиабилета с "ранним связыванием" у вас указаны рейс и место, а при "позднем" - только название авиакомпании и дата вылета.

2. Статическое и динамическое связывание

Это чисто технический вопрос для OS.

Представьте себе директорский телефон с тремя кнопками:

#1. Иванов
#2. Петров
#3. Сидоров

При этом Иванов сидит в соседней комнате, Петров - где-то в Гондурасе, а Сидоров вообще в роуминге.

Иванова техники свяжут с директором статически, а Петрова и Сидорова - динамически. При этом, пока связь с Гондурасом не нарушится и пока у Сидорова не кончатся деньги на счету, директор может вообше не задумываться о том где - кто и вызывать любого из них нажатием подходящей кнопки.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.04.2013, 03:19     Раннее и позднее связывание #3
Цитата Сообщение от FarStar Посмотреть сообщение
Или имеется ввиду, когда говорят про то, то адрес известен на этапе компиляции, что он известен как бы относительно, тоесть известно, что вся программа занимает столько то заранее известного места и этот блок памяти располагается уже в свободной оперативке, а там уже, относительно как бы стартового адреса блока в оперативке уже вычисляется так сказать мой заранее известный адрес? ?????
Да. Вот так. Дальше идите читайте про виртуальную память.
Yandex
Объявления
12.04.2013, 03:19     Раннее и позднее связывание
Ответ Создать тему
Опции темы

Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru