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

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

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(Скопидор @ Apr 11 2009, 02:02)  Почему после того, как я вместо iostream.h стал юзать iostream объём экзешника вырос с 0.2МБ до почти о.5МБ? wcin, wcout... Цитата(Скопидор @ Apr 15 2009, 02:13)  А обязательно ли в препроцессорной директиве #include использовать файлы с расширением .h ? Нет. Часто применяется, к примеру, .hpp. Аналогия C -- .c, C++ -- .cpp. Цитата(Скопидор @ Apr 15 2009, 02:13)  ...когда выгодно использовать эту директиву в середине, или даже в конце основного файла? Когда выгодно! Скажем, изменить макрос какой-нить, используемый в исходнике, вставив .h-файл с ifdef-undef-define этого макроса в середину исходника, и пусть враги догадываются почему мой спёртый ими исходник у них не работает. Цитата(Скопидор @ Apr 15 2009, 02:13)  Использование #include подразумевает экспортирование ресурсов из .h-файла. А бывают ли случаи, когда наоборот... Неверное понятие сути, нет там экспортирования никакого. Это паззл, если хотите  Цитата(Скопидор @ Apr 15 2009, 02:13)  Если main – функция, то можно ли её рекурсивно вызвать внутри её самой? Зависит от того, как она определена, от атрибутов ее. Сохранение контекста и прочее... Цитата(Скопидор @ Apr 15 2009, 02:13)  Как избежать в своей программе непреднамеренного «экранирования» идентификаторов из стандартной библиотеки? Читать документацию на используемые бибилиотеки.
|
|
|
|
Guest_Скопидор_*
|
Apr 15 2009, 00:48
|
Guests

|
Цитата(SysRq @ Apr 15 2009, 03:32)  Неверное понятие сути, нет там экспортирования никакого. Это паззл, если хотите  Ну как же. Например, я могу описать в h-файле прототип функции f1 и юзать его внутри тела функции f2, которая определена в h-файле. А вот конкретная реализация f1 будет содержаться в файле, в который будет вложен h-файл, т.е. как бы будет импортироваться из основного файла. Т.е. получается, что реализация f2 будет зависеть от того, куда будет вложен h-файл. Цитата(SysRq @ Apr 15 2009, 03:32)  Зависит от того, как она определена, от атрибутов ее. Сохранение контекста и прочее... Т.е. в принципе возможно юзать вызовы main внутри тела main? Цитата(SysRq @ Apr 15 2009, 03:32)  Читать документацию на используемые бибилиотеки. И больше никак? Т.е. я при выборе каждого идентификатора в своей проге должен смотреть: «а нет ли точно такого же идентификатора в стандартной библиотеке». Так? А насчёт перепрыгивания участка восстановления контекста из стека что скажете?
|
|
|
|
|
Apr 15 2009, 01:45
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(Скопидор @ Apr 15 2009, 04:48)  Ну как же. Срочно читать как из .cpp получается .exe. Цитата(Скопидор @ Apr 15 2009, 04:48)  Т.е. в принципе возможно юзать вызовы main внутри тела main? Можно. Поищите еще "точка входа". Цитата(Скопидор @ Apr 15 2009, 04:48)  Т.е. я при выборе каждого идентификатора в своей проге должен.. Вы какой язык изучать собрались? C++? Инкапсуляция, наследование, и т.п. -- туда читайте. Вопрос отпадет. О глобальных переменных флудить не будем, тема уже была, ищите на форуме. Как правило хорошего тона afaik не следует использовать _такие и __такие вот идентификаторы в прикладной программе. Цитата(Скопидор @ Apr 15 2009, 04:48)  А насчёт перепрыгивания... За goto - секирбашка. Особенно в C++. Флудить не будем, тема уже была тоже.
|
|
|
|
Guest_Скопидор_*
|
Apr 15 2009, 07:47
|
Guests

|
Цитата(SysRq @ Apr 15 2009, 05:45)  Срочно читать как из .cpp получается .exe. В 2 этапа: сначала по отдельности компилируем все файлы (получаем OBJ-файлы), потом линкуем. Правильно? Цитата(SysRq @ Apr 15 2009, 05:45)  Вы какой язык изучать собрались? C++? Инкапсуляция, наследование, и т.п. -- туда читайте. Вопрос отпадет. О глобальных переменных флудить не будем, тема уже была, ищите на форуме. Т.е. если «очень постараться» (  ) (ну не внимательно подойти к выбору идентификаторов в своей программе), то всё же есть вероятность «наступить на грабли» и случайно экранировать идентификаторы из стандартной библиотеки в своей проге? Я не говорю сейчас о своих идентификаторах, начинающихся на _, __ или заканчивающихся на _t. Допустим, к примеру, я такой дуб, что не знал, что в библиотеке уже юзаются cin и cout. И взял, и переопределил их в своей проге. Может такое быть? Цитата(SysRq @ Apr 15 2009, 05:45)  За goto - секирбашка. Особенно в C++. Флудить не будем, тема уже была тоже. Да я не собираюсь флудить, нужен или не нужен goto. Просто хотел узнать как это реализуется: осуществляется «прыжок» за пределы блока и при этом, КАК-ТО, восстанавливается контекст, сохранённый на входе в блок. P.S. Прошу прощения, если мои вопросы кажутся глупыми, я ж говорю, я ламер.
|
|
|
|
|
Apr 15 2009, 07:54
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Скопидор @ Apr 15 2009, 10:44)  Допустим, к примеру, я такой дуб, ... Может такое быть? Запросто. Но достаточно либо определить свои cin/cout в своём пространстве имён oak и квалифицировать при использовании oak::cin либо не переносить сущности стандартной библиолтеки в глобальное пространство имён, что происходит при использовании Код #include <iostream.h> вместо Код #include <iostream> или при совсем глобальном переносе Код using namespace std; В этом случае к "стандартно-библиотечным" придётся обращаться как к std::cin, но они тоже не пересекутся с новоявленными. А вообще поломать можно что угодно.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Apr 15 2009, 08:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(ReAl @ Apr 15 2009, 11:54)  Так это давным-давно deprecated. Цитата(Скопидор @ Apr 15 2009, 12:09)  Ну когда мы делаем "add File to Project" Ну и при чём тут компилятор. Цитата мы же хидеры добваляем в категорию "Header". И после того как файл проекта (dsn по-моему) сформирован, компилятор знает, какие *.h файлы юзать при сборке. Разве не так? Компилятор про проект ничего не знает.
|
|
|
|
Guest_Скопидор_*
|
Apr 15 2009, 08:39
|
Guests

|
Цитата(andrew_b @ Apr 15 2009, 12:19)  Ну и при чём тут компилятор. Компилятор про проект ничего не знает. А для кого тогда создаётся DSN-файл? ..................................... ..................................... ..................................... ReAl!! Спасибо за столь развёрнутый и подробный ответ. Я его весь пока не асисилил, но работаю над этим  Т.е. как я понял, компилятор выделяет память под все локальные переменные любого уровня вложенности блоков на входе в функцию? Т.е. если в функции описана переменная i, а во вложенном в функцию блоке – переменная j, то память в стеке и под i и под j будет выделена на входе в функцию, а уничтожена на выходе по команде return?
Сообщение отредактировал Скопидор - Apr 15 2009, 08:42
|
|
|
|
Сообщений в этой теме
Скопидор Вопросы по 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       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 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|