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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aligator_grin
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 5
#1

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

27.05.2012, 13:47. Просмотров 790. Ответов 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 не интересуют
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 13:47     Шаг компиляции, шаг компоновки, и шаг запуска
Посмотрите здесь:

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

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

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

Шаг конем - C++
просьба . помогите . ну вот я должен написать код обход коня по всей доске ,программа находит первую точку коня и его первые возможные...

Изменить шаг - C++
#include <iostream> #include <conio.h> int main() { for (int i=100;i<=200;i++) {std::cout<<i<<'\n'; ...

Как изменить шаг на 2? - C++
#include <iostream> #include <ctime> int main() { clock_t t = clock(); { std::size_t size = 1000; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 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
Aligator_grin
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 5
27.05.2012, 14:06  [ТС]     Шаг компиляции, шаг компоновки, и шаг запуска #3
Вопрос не в том в какой машинный код все это переводится.
Это вопросы для зашиты лабораторной работы.
Суть ответа сводится к тому что нада сказать где и когда отводится место под переменные и функции в памяти когда проставляются адреса переменных и функций, когда получают значения переменных и функций. Что на каком этапе происходит, если функция объявлена в другом модуле.
Нужен точный ответ по знанию основ.
Ни в одной книге этого не описано
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 14:09     Шаг компиляции, шаг компоновки, и шаг запуска
Еще ссылки по теме:

Вывести каждый шаг сортировки - C++
Имеется вот такой код шейкерной сортировки, необходимо, чтобы каждый шаг сортировки выводился на экран, все мои попытки не увенчались...

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

Описать каждый шаг в программе - C++
Помогите описать каждый шаг в программе: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <conio.h> using...

Герберт Шилдт, С++ Шаг за шагом - C++
Приветствую всех! Я чайник в С++, и заказал себе книгу Герберт Шилдт, С++ Шаг за шагом. Стоило того? Будет ли понятна эта книга, если я...

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

Что лучше использовать? Шаг переменной dx - C++
Есть описание функции. вот как я её сделал: if (abs(x) >= 10){ printf("Y(x)=%1.2f\n\n", y = x*x); } else {...


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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
27.05.2012, 14:09     Шаг компиляции, шаг компоновки, и шаг запуска #4
Цитата Сообщение от Aligator_grin Посмотреть сообщение
Суть ответа сводится к тому что нада сказать где и когда отводится место под переменные и функции в памяти когда проставляются адреса переменных и функций, когда получают значения переменных и функций. Что на каком этапе происходит, если функция объявлена в другом модуле.
я так думаю вам надо смотреть исходники компилятора
Yandex
Объявления
27.05.2012, 14:09     Шаг компиляции, шаг компоновки, и шаг запуска
Ответ Создать тему
Опции темы

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