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

 
 
> Вопросы по 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
Ответов
SysRq
сообщение Apr 14 2009, 23:32
Сообщение #2


Чайник, 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-файла. А бывают ли случаи, когда наоборот...
Неверное понятие сути, нет там экспортирования никакого. Это паззл, если хотите smile.gif

Цитата(Скопидор @ Apr 15 2009, 02:13) *
Если main – функция, то можно ли её рекурсивно вызвать внутри её самой?
Зависит от того, как она определена, от атрибутов ее. Сохранение контекста и прочее...

Цитата(Скопидор @ Apr 15 2009, 02:13) *
Как избежать в своей программе непреднамеренного «экранирования» идентификаторов из стандартной библиотеки?
Читать документацию на используемые бибилиотеки.
Go to the top of the page
 
+Quote Post
Guest_Скопидор_*
сообщение Apr 15 2009, 00:48
Сообщение #3





Guests






Цитата(SysRq @ Apr 15 2009, 03:32) *
Неверное понятие сути, нет там экспортирования никакого. Это паззл, если хотите smile.gif

Ну как же. Например, я могу описать в h-файле прототип функции f1 и юзать его внутри тела функции f2, которая определена в h-файле. А вот конкретная реализация f1 будет содержаться в файле, в который будет вложен h-файл, т.е. как бы будет импортироваться из основного файла. Т.е. получается, что реализация f2 будет зависеть от того, куда будет вложен h-файл.


Цитата(SysRq @ Apr 15 2009, 03:32) *
Зависит от того, как она определена, от атрибутов ее. Сохранение контекста и прочее...

Т.е. в принципе возможно юзать вызовы main внутри тела main?


Цитата(SysRq @ Apr 15 2009, 03:32) *
Читать документацию на используемые бибилиотеки.

И больше никак? Т.е. я при выборе каждого идентификатора в своей проге должен смотреть: «а нет ли точно такого же идентификатора в стандартной библиотеке». Так?


А насчёт перепрыгивания участка восстановления контекста из стека что скажете?
Go to the top of the page
 
+Quote Post
SysRq
сообщение Apr 15 2009, 01:45
Сообщение #4


Чайник, 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++. Флудить не будем, тема уже была тоже.
Go to the top of the page
 
+Quote Post
Guest_Скопидор_*
сообщение Apr 15 2009, 07:47
Сообщение #5





Guests






Цитата(SysRq @ Apr 15 2009, 05:45) *
Срочно читать как из .cpp получается .exe.

В 2 этапа: сначала по отдельности компилируем все файлы (получаем OBJ-файлы), потом линкуем. Правильно?



Цитата(SysRq @ Apr 15 2009, 05:45) *
Вы какой язык изучать собрались? C++? Инкапсуляция, наследование, и т.п. -- туда читайте. Вопрос отпадет. О глобальных переменных флудить не будем, тема уже была, ищите на форуме.

Т.е. если «очень постараться» ( smile.gif ) (ну не внимательно подойти к выбору идентификаторов в своей программе), то всё же есть вероятность «наступить на грабли» и случайно экранировать идентификаторы из стандартной библиотеки в своей проге? Я не говорю сейчас о своих идентификаторах, начинающихся на _, __ или заканчивающихся на _t.
Допустим, к примеру, я такой дуб, что не знал, что в библиотеке уже юзаются cin и cout. И взял, и переопределил их в своей проге. Может такое быть?


Цитата(SysRq @ Apr 15 2009, 05:45) *
За goto - секирбашка. Особенно в C++. Флудить не будем, тема уже была тоже.

Да я не собираюсь флудить, нужен или не нужен goto. Просто хотел узнать как это реализуется: осуществляется «прыжок» за пределы блока и при этом, КАК-ТО, восстанавливается контекст, сохранённый на входе в блок.

P.S. Прошу прощения, если мои вопросы кажутся глупыми, я ж говорю, я ламер.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 15 2009, 07:54
Сообщение #6


Нечётный пользователь.
******

Группа: Свой
Сообщений: 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, но они тоже не пересекутся с новоявленными.

А вообще поломать можно что угодно.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Apr 15 2009, 08:19
Сообщение #7


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(ReAl @ Apr 15 2009, 11:54) *
Код
#include <iostream.h>
Так это давным-давно deprecated.

Цитата(Скопидор @ Apr 15 2009, 12:09) *
Ну когда мы делаем "add File to Project"
Ну и при чём тут компилятор.

Цитата
мы же хидеры добваляем в категорию "Header". И после того как файл проекта (dsn по-моему) сформирован, компилятор знает, какие *.h файлы юзать при сборке. Разве не так?
Компилятор про проект ничего не знает.
Go to the top of the page
 
+Quote Post
Guest_Скопидор_*
сообщение Apr 15 2009, 08:39
Сообщение #8





Guests






Цитата(andrew_b @ Apr 15 2009, 12:19) *
Ну и при чём тут компилятор.
Компилятор про проект ничего не знает.

А для кого тогда создаётся DSN-файл?
.....................................
.....................................
.....................................
ReAl!!

Спасибо за столь развёрнутый и подробный ответ. Я его весь пока не асисилил, но работаю над этим smile.gif

Т.е. как я понял, компилятор выделяет память под все локальные переменные любого уровня вложенности блоков на входе в функцию? Т.е. если в функции описана переменная i, а во вложенном в функцию блоке – переменная j, то память в стеке и под i и под j будет выделена на входе в функцию, а уничтожена на выходе по команде return?

Сообщение отредактировал Скопидор - Apr 15 2009, 08:42
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 15 2009, 03:32) Неверн...   Apr 15 2009, 00:48
|- - Скопидор   Цитата(SysRq @ Apr 15 2009, 05:45) Срочно...   Apr 15 2009, 07:47
||- - Скопидор   Цитата(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
|- - 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 Текстовая версия Сейчас: 30th July 2025 - 04:56
Рейтинг@Mail.ru


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