|
Вопросы по C от ламера, В книжках ответа чёта не нахожу |
|
|
Guest_Скопидор_*
|
Apr 10 2009, 11:16
|
Guests

|
Зачем вообще нужно ключевое слово «auto»? Ведь классификатор(или квалификатор? как это слово точно называется?) памяти «auto» никак не используется ( по крайней мере в исходниках разных разработчиков я его не видел). Т.к. глобальные переменные не могут быть « auto», а локальные и так по умолчанию «auto».
Сообщение отредактировал Скопидор - Apr 10 2009, 11:19
|
|
|
|
|
 |
Ответов
Guest_Скопидор_*
|
Apr 23 2009, 20:07
|
Guests

|
Цитата(singlskv @ Apr 23 2009, 22:46)  #include "..." #include <...> обычно означает включить объявления а не определения переменных и функций (исключения конечно есть, но пока это не Ваш случай) если Вы включаете по include просто С код, то тогда это просто разбиение кода на несколько файлов, это дурной тон, но иногда делают и так... .h(.hpp) файлы библиотек(iostream например) для того и нужны чтоб правильно прилинковать библиотеки и указать на глобальныее переменные/вызовы функций которые там реализованны. Так что раздельная компиляция это совсем не миф...  более того, это просто СТАНДАРТ. Т.е. короче говоря, в библиотечных файлах (типа iostream) ВСЕГДА находятся только объявления (не определения) типов, переменных и т.п. и прототипы функций. Когда препроцессор, просматривая исходник, «утыкается» в директиву #include <iostream>, то он ВСЕГДА вставляет содержимое РЕАЛЬНО СУЩЕСТВУЮЩЕГО (в системной директории компилятора) файла iostream, содержащего только объявления, в исходник юзверя. Затем компилятор преобразует полученный после работы препроцессора файл в объектный модуль (формат ELF или COFF). При этом в этом файле сохраняются ссылки на объекты (т.е. переменные, типы и т.п.), определённые в других файлах. Затем компилятор преобразует в объектный код все остальные CPP-файлы проекта. После этого линкер, анализируя объектный файл, полученный после компиляции PRIMARY CPP-файла (т.е. файла содержащего main) «прилепливает» к нему код из объектных файлов системных библиотек и объектных файлов, полученных после компиляции всех других CPP-файлов, и получает исполняемый файл (экзешник для DOS и Win). При этом это ЛИНКЕР определяет какой код из системных библиотек «прилеплять», а какие не надо. Я правильно понимаю?
|
|
|
|
|
Apr 23 2009, 20:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Скопидор @ Apr 23 2009, 23:07)  Я правильно понимаю? Почти правильно. Так оно и было, лет этак 30 тому назад. Сейчас этот процесс несколько усложнился тем, что include-файлы теперь включают : 1. inline функции, которые могут вызываться как функции, а может компилятор их текст включить в код вызывающей функции. 2. template шаблоны. Но в общем процесс сборки программы вы уловили правильно.
|
|
|
|
Сообщений в этой теме
Скопидор Вопросы по C от ламера Apr 10 2009, 11:16 mdmitry The C++ Programming Language Special 3rd Edition ... Apr 10 2009, 13:08 SysRq На Хабре было интересно: http://habrahabr.ru/blogs... Apr 10 2009, 13:37 Скопидор Цитата(SysRq @ Apr 10 2009, 17:37) На Хаб... Apr 10 2009, 18:29 Скопидор Какие компиляторы (каких фирм) и начиная с какого ... Apr 10 2009, 22:02 andrew_b Цитата(Скопидор @ Apr 11 2009, 02:02) Как... Apr 13 2009, 05:32 ukpyr ЦитатаДык объявлять каждую переменную в каждом из ... Apr 14 2009, 21:23 Скопидор Цитата(ukpyr @ Apr 15 2009, 01:23) правил... Apr 14 2009, 21:42 MrYuran Цитата(Скопидор @ Apr 15 2009, 01:42) А к... Apr 15 2009, 04:13 Скопидор 1.А обязательно ли в препроцессорной директиве #in... Apr 14 2009, 22:13 MrYuran Цитата(Скопидор @ Apr 15 2009, 02:13) Ест... Apr 15 2009, 04:31 andrew_b Цитата(Скопидор @ Apr 15 2009, 02:13) 1.А... Apr 15 2009, 04:41  Скопидор Цитата(andrew_b @ Apr 15 2009, 08:41) Нич... Apr 15 2009, 07:30   MrYuran Цитата(Скопидор @ Apr 15 2009, 11:30) И е... Apr 15 2009, 07:41    Скопидор Цитата(MrYuran @ Apr 15 2009, 11:41) Хрен... Apr 15 2009, 08:09 Скопидор Цитата(Скопидор @ Apr 15 2009, 02:13) 5.Е... Apr 24 2009, 11:51 SysRq Цитата(Скопидор @ Apr 11 2009, 02:02) Поч... Apr 14 2009, 23:32 Скопидор Цитата(SysRq @ Apr 15 2009, 03:32) Неверн... Apr 15 2009, 00:48  SysRq Цитата(Скопидор @ Apr 15 2009, 04:48) Ну ... Apr 15 2009, 01:45   Скопидор Цитата(SysRq @ Apr 15 2009, 05:45) Срочно... Apr 15 2009, 07:47    ReAl Цитата(Скопидор @ Apr 15 2009, 10:44) Доп... Apr 15 2009, 07:54     andrew_b Цитата(ReAl @ Apr 15 2009, 11:54) Код#inc... Apr 15 2009, 08:19      Скопидор Цитата(andrew_b @ Apr 15 2009, 12:19) Ну ... Apr 15 2009, 08:39       andrew_b Цитата(Скопидор @ Apr 15 2009, 12:39) А д... Apr 15 2009, 09:11        Скопидор Цитата(andrew_b @ Apr 15 2009, 13:11) Вид... Apr 15 2009, 10:09    ReAl Цитата(Скопидор @ Apr 15 2009, 10:47) Да ... Apr 15 2009, 08:30 mdmitry IDE сама может при создании файла прописать некото... Apr 15 2009, 11:56 Скопидор Вопрос №7.
Можно ли использовать при объявлении (... Apr 15 2009, 15:42 SysRq Цитата(Скопидор @ Apr 15 2009, 19:42) ...... Apr 15 2009, 20:00  Скопидор Цитата(SysRq @ Apr 16 2009, 00:00) Присва... Apr 15 2009, 20:34   demiurg_spb Цитата(Скопидор @ Apr 16 2009, 00:34) А к... Apr 15 2009, 21:52 andrew_b Цитата(Скопидор @ Apr 15 2009, 19:42) Воп... Apr 16 2009, 04:48 _Pasha Цитата(Скопидор @ Apr 15 2009, 18:42) Воп... Apr 16 2009, 10:35 Скопидор Возвращаясь к обсуждению директивы #include.
В не... Apr 23 2009, 12:22 andrew_b Цитата(Скопидор @ Apr 23 2009, 15:28) Поя... Apr 23 2009, 12:23 MrYuran Ещё раз.
Встретив директиву #include "filena... Apr 23 2009, 12:27 Скопидор Цитата(MrYuran @ Apr 23 2009, 16:27) Код ... Apr 23 2009, 12:35  AndreyKeil Цитата(Скопидор @ Apr 23 2009, 18:35) А м... Apr 23 2009, 12:54   Скопидор Цитата(AndreyKeil @ Apr 23 2009, 16:54) Г... Apr 23 2009, 13:03    mdmitry Цитата(Скопидор @ Apr 23 2009, 17:03) Т.е... Apr 23 2009, 13:21 Скопидор Дык всё-таки "раздельная компиляция" ест... Apr 23 2009, 12:29 andrew_b Цитата(Скопидор @ Apr 23 2009, 16:29) Дык... Apr 23 2009, 12:35 MrYuran Цитата(Скопидор @ Apr 23 2009, 16:29) Дык... Apr 23 2009, 12:37 Скопидор Т.е. препроцессор каким-то чудесным образом узнаёт... Apr 23 2009, 12:51 MrYuran Цитата(Скопидор @ Apr 23 2009, 16:51) А е... Apr 23 2009, 15:09  Скопидор Цитата(MrYuran @ Apr 23 2009, 19:09) В h-... Apr 23 2009, 15:18   MrYuran Цитата(Скопидор @ Apr 23 2009, 19:18) Из ... Apr 23 2009, 16:57 Скопидор Вопрос №12
Как и для чего в C++ используется идент... Apr 23 2009, 14:57 sergeeff Все что имеется в h-файлах и не отключается команд... Apr 23 2009, 15:38 Скопидор Цитата(sergeeff @ Apr 23 2009, 19:38) Вам... Apr 23 2009, 17:36 SysRq Скопидор, уймитесь с форматированием. Весеннее обо... Apr 23 2009, 17:42 Скопидор Цитата(SysRq @ Apr 23 2009, 21:42) Скопид... Apr 23 2009, 18:31  singlskv Цитата(Скопидор @ Apr 23 2009, 22:31) Да ... Apr 23 2009, 18:46  sergeeff Цитата(Скопидор @ Apr 23 2009, 21:31) Да ... Apr 23 2009, 19:02 AndreyKeil Цитата(Скопидор @ Apr 24 2009, 00:31) Неп... Apr 23 2009, 18:57 rezident Цитата(AndreyKeil @ Apr 24 2009, 00:57) А... Apr 23 2009, 19:14 Скопидор Цитата(singlskv @ Apr 23 2009, 22:46) Пат... Apr 23 2009, 19:34 singlskv Цитата(Скопидор @ Apr 23 2009, 23:34) Ещё... Apr 23 2009, 19:48  Скопидор Цитата(singlskv @ Apr 23 2009, 23:48) Раз... Apr 23 2009, 20:26   mdmitry Цитата(Скопидор @ Apr 24 2009, 00:26) Вы ... Apr 24 2009, 08:09    Скопидор Цитата(mdmitry @ Apr 24 2009, 12:09) Вы т... Apr 24 2009, 09:03     andrew_b Цитата(Скопидор @ Apr 24 2009, 13:03) Кни... Apr 24 2009, 09:08      Скопидор Цитата(andrew_b @ Apr 24 2009, 13:08) Не ... Apr 24 2009, 09:17     mdmitry Цитата(Скопидор @ Apr 24 2009, 13:03) Кни... Apr 24 2009, 09:34      Скопидор Цитата(mdmitry @ Apr 24 2009, 13:34) учас... Apr 24 2009, 09:44 mdmitry Какие книги смотрели?
У Страуструпа про заголовочн... Apr 23 2009, 19:43 Скопидор Цитата(singlskv @ Apr 23 2009, 22:46) По ... Apr 23 2009, 19:43 SysRq Стоило остановиться еще там:
Цитата(Скопидор ... Apr 23 2009, 19:52 singlskv Цитата(Скопидор @ Apr 24 2009, 00:07) Т.е... Apr 23 2009, 20:13 MrYuran Цитата(Скопидор @ Apr 24 2009, 00:07) Т.е... Apr 24 2009, 04:24 sergeeff И в результате всей совместной деятельности форумч... Apr 23 2009, 21:33 Скопидор Цитата(sergeeff @ Apr 24 2009, 01:33) И в... Apr 24 2009, 07:31 SysRq Новички C++!!! Это очень понятный язык... Apr 24 2009, 13:48 Скопидор Цитата(SysRq @ Apr 24 2009, 17:48) Новичк... Apr 24 2009, 14:16  sergeeff Цитата(Скопидор @ Apr 24 2009, 17:16) «Ес... Apr 24 2009, 16:09   Скопидор Цитата(sergeeff @ Apr 24 2009, 20:09) Я н... Apr 24 2009, 19:02 sergeeff Понятно, хочется себя любимого втюхать кому-то как... Apr 24 2009, 21:51 Скопидор Цитата(sergeeff @ Apr 25 2009, 01:51) Пон... Apr 24 2009, 22:13 SysRq Раз все выяснилось, предлагаю принять правила игры... Apr 24 2009, 22:24 Скопидор Цитата(SysRq @ Apr 25 2009, 02:24) Раз вс... Apr 24 2009, 23:32  SysRq Цитата(Скопидор @ Apr 25 2009, 03:32) Тог... Apr 25 2009, 00:07 Andy Nikiforovv Кто удаляет из исходника камменты (перед компиляци... Apr 27 2009, 19:14 sergeeff Цитата(Andy Nikiforovv @ Apr 27 2009, 23... Apr 27 2009, 19:18 mdmitry Цитата(Andy Nikiforovv @ Apr 27 2009, 23... Apr 27 2009, 20:48 Andy Nikiforovv Написано, что параметры командной строки для Borla... Apr 27 2009, 20:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|