реклама на сайте
подробности

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





Guests






Зачем вообще нужно ключевое слово «auto»?
Ведь классификатор(или квалификатор? как это слово точно называется?) памяти «auto» никак не используется ( по крайней мере в исходниках разных разработчиков я его не видел).
Т.к. глобальные переменные не могут быть « auto», а локальные и так по умолчанию «auto».

Сообщение отредактировал Скопидор - Apr 10 2009, 11:19
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_Скопидор_*
сообщение Apr 23 2009, 20:07
Сообщение #2





Guests






Цитата(singlskv @ Apr 23 2009, 22:46) *
#include "..."
#include <...>
обычно означает включить объявления а не определения переменных и функций (исключения конечно есть,
но пока это не Ваш случай)

если Вы включаете по include просто С код, то тогда это просто разбиение кода на несколько файлов,
это дурной тон, но иногда делают и так...

.h(.hpp) файлы библиотек(iostream например) для того и нужны чтоб правильно прилинковать библиотеки
и указать на глобальныее переменные/вызовы функций которые там реализованны.

Так что раздельная компиляция это совсем не миф... smile.gif более того, это просто СТАНДАРТ.

Т.е. короче говоря, в библиотечных файлах (типа iostream) ВСЕГДА находятся только объявления (не определения) типов, переменных и т.п. и прототипы функций. Когда препроцессор, просматривая исходник, «утыкается» в директиву #include <iostream>, то он ВСЕГДА вставляет содержимое РЕАЛЬНО СУЩЕСТВУЮЩЕГО (в системной директории компилятора) файла iostream, содержащего только объявления, в исходник юзверя. Затем компилятор преобразует полученный после работы препроцессора файл в объектный модуль (формат ELF или COFF). При этом в этом файле сохраняются ссылки на объекты (т.е. переменные, типы и т.п.), определённые в других файлах. Затем компилятор преобразует в объектный код все остальные CPP-файлы проекта. После этого линкер, анализируя объектный файл, полученный после компиляции PRIMARY CPP-файла (т.е. файла содержащего main) «прилепливает» к нему код из объектных файлов системных библиотек и объектных файлов, полученных после компиляции всех других CPP-файлов, и получает исполняемый файл (экзешник для DOS и Win). При этом это ЛИНКЕР определяет какой код из системных библиотек «прилеплять», а какие не надо.

Я правильно понимаю?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 23 2009, 20:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(Скопидор @ Apr 23 2009, 23:07) *
Я правильно понимаю?


Почти правильно. Так оно и было, лет этак 30 тому назад. Сейчас этот процесс несколько усложнился тем, что include-файлы теперь включают :
1. inline функции, которые могут вызываться как функции, а может компилятор их текст включить в код вызывающей функции.

2. template шаблоны.

Но в общем процесс сборки программы вы уловили правильно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Скопидор   Вопросы по 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 23 2009, 22:46) #in...   Apr 23 2009, 20:07
|- - 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


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 06:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016