Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Aligator_grin
0 / 0 / 1
Регистрация: 27.05.2012
Сообщений: 5
1

Шаг компиляции, шаг компоновки, и шаг запуска

27.05.2012, 13:47. Просмотров 1069. Ответов 3
Метки нет (Все метки)

Что происходит на шаге компиляции, шаге компоновки, и шаге запуска, с переменными и функциями.
что происходит при встрече в коде объявления переменной и при встрече с ее инициализацией
например:
C++
1
2
int a;  //объявление
a=10;  // инициализация
Что происходит при встрече в коде объявления функции, ее вызова и ее реализации.
например:
C++
1
2
3
4
5
6
7
8
9
int a (); //объявление
 
int a()  // реализация
{ return 1; }
 
void main()
{
a();  // вызов
}
Хотелось бы чтобы было подробное объяснение по каждому из 3 шагов

Объяснения типа сначала из .cpp файла превращается в .obj а потом в .exe не интересуют
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 13:47
Ответы с готовыми решениями:

Шаг младенца, шаг великана Трудоемкость
Помогите реализовать данную функцию с трудоемкостью (√P×logP). Как делать именно поиск равных...

Шаг в 0,5
Вычислить значение функции y={x}^{5}-\sqrt{x} При 0 \leq X \leq 5 c шагом в 0,5 Т.е. x ...

следующий шаг
нужен совет заканчиваю изучать 1-ю книгу по С++ Дайтела Какие лучше книги дальше изучать, по:...

Изменить шаг
#include <iostream> #include <conio.h> int main() { for (int i=100;i<=200;i++)...

Шаг конем
просьба . помогите . ну вот я должен написать код обход коня по всей доске ,программа находит...

3
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,814
Записей в блоге: 12
27.05.2012, 13:57 2
Объявления - компилятор записывает что "a" это гдето [ebp-4] или другое число вместо четырёх
а=10 это
mov eax,10
mov [ebp-кокоето порядковое число зависит от порядка распределения переменных] , eax
return 1 насчёт СИ не знаю а вот в случае с stdcall
это
mov eax,1
retn

a() вызов это
// вот тут может находится куча пушей, так как Push a+ 5/d неприемлемо то следует куча операций по записи в eax конечного результата а потом идёт push eax
call a


int a() - смотри через отладчик борланд строитель 6
0
Aligator_grin
0 / 0 / 1
Регистрация: 27.05.2012
Сообщений: 5
27.05.2012, 14:06  [ТС] 3
Вопрос не в том в какой машинный код все это переводится.
Это вопросы для зашиты лабораторной работы.
Суть ответа сводится к тому что нада сказать где и когда отводится место под переменные и функции в памяти когда проставляются адреса переменных и функций, когда получают значения переменных и функций. Что на каком этапе происходит, если функция объявлена в другом модуле.
Нужен точный ответ по знанию основ.
Ни в одной книге этого не описано
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,814
Записей в блоге: 12
27.05.2012, 14:09 4
Цитата Сообщение от Aligator_grin Посмотреть сообщение
Суть ответа сводится к тому что нада сказать где и когда отводится место под переменные и функции в памяти когда проставляются адреса переменных и функций, когда получают значения переменных и функций. Что на каком этапе происходит, если функция объявлена в другом модуле.
я так думаю вам надо смотреть исходники компилятора
0
27.05.2012, 14:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 14:09

Как изменить шаг на 2?
#include <iostream> #include <ctime> int main() { clock_t t = clock(); { ...

первый шаг он трудный самый!
Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге...

Вывести каждый шаг сортировки
Имеется вот такой код шейкерной сортировки, необходимо, чтобы каждый шаг сортировки выводился на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru