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

 
 
> Вопросы по 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, 12:51
Сообщение #2





Guests






Т.е. препроцессор каким-то чудесным образом узнаёт в каких случаях при встрече им директивы #include вставлять вместо #include содержимое файла, а когда нет?

А если он не вставляет содержимое системного файла в наш исходник, то почему компилятор не ругается "undefined variable" если мы юзаем переменные из системного файла?



Цитата(MrYuran @ Apr 23 2009, 16:27) *
Код из библиотек не подставляется при компиляции

А тогда зачем вообще писать, к примеру, #include <iostream> если препроцессор всё равно не подставляет код из этого библиотечного файла в наш исходник?

Сообщение отредактировал Скопидор - Apr 23 2009, 13:07
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 23 2009, 15:09
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Скопидор @ Apr 23 2009, 16:51) *
А если он не вставляет содержимое системного файла в наш исходник, то почему компилятор не ругается "undefined variable" если мы юзаем переменные из системного файла?
А тогда зачем вообще писать, к примеру, #include <iostream> если препроцессор всё равно не подставляет код из этого библиотечного файла в наш исходник?

В h-файлах обычно определяются константы, макросы, предварительные объявления функций и ссылки на переменные.

То есть, если вы используете в тексте переменные или функции из других модулей, то они должны быть объявлены до использования.
Переменные - как extern, функции - как предварительное описание.

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Guest_Скопидор_*
сообщение Apr 23 2009, 15:18
Сообщение #4





Guests






Цитата(MrYuran @ Apr 23 2009, 19:09) *
В h-файлах обычно определяются константы, макросы, предварительные объявления функций и ссылки на переменные.

Да какая разница что там описано в этих h-файлах (а, кстати, где Вы увидели h в приведённой мной выше строке #include <iostream> ?) если Вы сами же пишите:
Цитата(MrYuran @ Apr 23 2009, 16:27) *
Код из библиотек не подставляется при компиляции, а линкуется при конечной сборке.

Из чего следует, что содержимое этих "h-файлов"не добавляется препроцессором в наш исходник

Сообщение отредактировал Скопидор - Apr 23 2009, 15:23
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 23 2009, 16:57
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Скопидор @ Apr 23 2009, 19:18) *
Из чего следует, что содержимое этих "h-файлов"не добавляется препроцессором в наш исходник

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

Короче, учите матчасть. Лучше всего взять конкретный исходник (желательно грамотно написанный) и разобрать его по косточкам.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
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
|- - Скопидор   Цитата(MrYuran @ Apr 23 2009, 19:09) В h-...   Apr 23 2009, 15:18
- - Скопидор   Вопрос №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
|- - sergeeff   Цитата(Скопидор @ Apr 23 2009, 23:07) Я п...   Apr 23 2009, 20:17
|- - 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 Текстовая версия Сейчас: 20th June 2025 - 03:53
Рейтинг@Mail.ru


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