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

Разделить программу на файлы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ do while фунция http://www.cyberforum.ru/cpp-beginners/thread758245.html
Здравствуйте, вот есть код приведенный ниже,прости те за культуру написания, но суть задания в том чтобы выполнить do while с вычислением ещё 1 раз, учитывая условия. // 3.2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "math.h" #include "iostream" using namespace std;
C++ Уроки WIndows Form Aplications (БЕСПЛАТНО) Дайте ссылку на сайт с хорошими видео-уроками по WIndows Form Aplications ( Visual Studio 2010 C++) Буду сильно благодарен! http://www.cyberforum.ru/cpp-beginners/thread758242.html
Упорядочить элементы стека методом выбора с обменами C++
#include "stdio.h" #include "iostream" #include "stack" using namespace std; int main() { stack<int> S1;
Нужно разделить эту строку на 3 части и вывести на экран. C++
Здравствуйте! Вот задача: К примеру у нас есть строка длина которой кратная 3. Нужно разделить эту строку на 3 части и вывести на экран. Вот мой код: #include <cstdio> #include <iostream> #include <cstring>
C++ Найдите все симметричные палиндромы http://www.cyberforum.ru/cpp-beginners/thread758200.html
Найдите все симметричные палиндромы из интервала . Объяснение: палиндром - это число, которое читается одинаково справа налево и слева направо, то есть именно число равно перевернутом числу.
C++ создать список в котором введенная строка переворачивается создать список в котором введенная строка переворачивается подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.01.2013, 23:47     Разделить программу на файлы
Цитата Сообщение от tokar2 Посмотреть сообщение
Можете это как-то аргументировать? Так как я начинающий мне интересно, почему?
Потому что существует такое понятие "раздельная компиляция". Компилятор может генерировать из СРР файла промежуточный код, совершенно не волнуясь, что в коде недостаточно некоторых переменных и функций.

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

После работы препроцессора компилятор должен скомпилировать каждый срр файл по отдельности. При этом, в срр файле могут использоваться внешние переменные и функции из других файлов. Компилятору их нужно только их declaration, т.е объявление без тела, чтобы просто сгенерировать вызов с аргументами в правильном порядке или выдать ошибку о синтаксически неправильном вызове функции.

Таким образом, компилятор генерирует промежуточный файл, в котором все функции грамотно вызываются по своему адресу, а вот по какому именно адресу позже разберётся не компилятор, а линкер. При этом одно из достоинств раздельной компиляции то, что при добавлении в проект нового кода(или изменении какого-то срр-файла) остальные файлы не требуется перекомпилировать. К тому же, в программу помимо скомпилированных cpp файлов могут быть включены сторонние библиотеки функций. (файлы с расширением .lib) Все эти куски кода собираются линкером в один exe файл. Он и разбирает, куда ведёт вызов какой функции, и если ты неправильно их объявил или забыл объявить, то выдаёт "Linker error". При этом синтаксис программы был абсолютно грамотный, поэтому компилятор их спокойно прожевал и отдал линкеру.
 
Текущее время: 08:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru