Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Несколько вопросов по C++.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Несколько вопросов по C++.
Имя
Сообщение << Старые топики   Новые топики >>
Несколько вопросов по C++. - 2007-12-15 14:13:47.673333   
Alaget

Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
Вчера скачала DEV C++ зашла в папку Examples, а там пример:
 
#include &lt;iostream&gt; &nbsp; using namespace std; &nbsp; int main (int argc, char *argv[]) { &nbsp;&nbsp;&nbsp; char quit;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; quit = '\0'; &nbsp;&nbsp;&nbsp; while (quit != 'q') &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Hello ! This is a console app." &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "To create a console, go to Project Options and select" &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "\'Win32 Console\'." &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Press q to quit " &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; quit; &nbsp;&nbsp;&nbsp; } &nbsp; &nbsp;&nbsp;&nbsp; return 0; } По коду понятно что выводятся строки, если нажимаешь кнопочку q то программа завершается.
Запустила его.
Всё так, и есть – сегодня же повыпендриваюсь перед своим окружением, что я теперь программирую на C++, там получаются программы маленького размера, думаю сразу надо сравнить на делфи такое чудо 8kb весит, а на C++ сколько?. Посмотрела и моя челюсть отвисла вниз файл весил 464kb.
Я над C++ не стебусь мне за ребят обидно, как же так на каждом углу «цеж малый размер, цеж малый размер», а тут вот как некрасиво получается. Может дело в #include <iostream>, надеюсь кто-нибудь мне прояснит данную ситуацию.
 
И ещё может кто-нибудь посоветует мне хороший самоучитель по DEV C++, а не то самоучитель по Visual C++ .NET для чайников, думаю не подойдёт.
 
Много вопросов накопилось, задам ещё один: DEV C++ как мне показалось только среда разработки, а компиляторы на неё – gcc, g++. То есть если я буду пользоваться только стандартными библиотеками, и не делать вызовов функций из виндосовских dll. То мои программы могут быть кроссплатформеными, без дополнительной переработки. Так ли это.
Post #: 1
RE: Несколько вопросов по C++. - 2007-12-15 18:27:37.816666   
redsh

Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
у-ух… RTFM!!!
Post #: 2
RE: Несколько вопросов по C++. - 2007-12-15 18:38:10.883333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Alaget
Всё так, и есть – сегодня же повыпендриваюсь перед своим окружением, что я теперь программирую на C++, там получаются программы маленького размера, думаю сразу надо сравнить на делфи такое чудо 8kb весит, а на C++ сколько?. Посмотрела и моя челюсть отвисла вниз файл весил 464kb.

devc++ использует mingw реализацию libc, причём, подозреваю, игнорируя существование в win32api отдельных posix функций, типа printf, и ещё нескольких. вероятно gcc компонует её эту библиотеку статически. Но это лишь предположение. Ибо если я чего-то и компиляю в венде, то добившись успешного запуска, быстро разворачиваюсь и убегаю в свой линь, и мне просто некогда обращать внимания на такие мелочи как размер файла. Тем более что я и так знаю, что размер немаленький, как правило программа тянет за собой пяток нестандартных для венды библиотек, а чтоб за программой не таскались всякие dll'и, я естественно добавляю в командную строку gcc опцию -static. А если там помимо libc, libm, libpcre, libcurl и пр, нужны какие-нибудь libgtk (со всеми депендансами: libglib, libgobject, libgdk, libatk, libpango, libcairo…) то там наверное вообще туши свет и сливай воду.

quote:

ORIGINAL: Alaget
И ещё может кто-нибудь посоветует мне хороший самоучитель по DEV C++, а не то самоучитель по Visual C++ .NET для чайников, думаю не подойдёт.

тебя c++ интересует, или dev c++? если второе, то можно почитать документацию к нему, если же перове, то эта история надолго. стоит почитать страубструпа. стоит просто покодить. Стоит попользоваться библиотеками классов. Стоит завернуть парочку C'шных библиотек в c++'овые. Стоит, наконец, прочитать александреску.
quote:

ORIGINAL: Alaget
Много вопросов накопилось, задам ещё один: DEV C++ как мне показалось только среда разработки, а компиляторы на неё – gcc, g++. То есть если я буду пользоваться только стандартными библиотеками, и не делать вызовов функций из виндосовских dll. То мои программы могут быть кроссплатформеными, без дополнительной переработки. Так ли это.

Так.
Post #: 3
RE: Несколько вопросов по C++. - 2007-12-15 21:13:38.950000   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
quote:

ORIGINAL: Alaget
Я над C++ не стебусь мне за ребят обидно, как же так на каждом углу «цеж малый размер, цеж малый размер», а тут вот как некрасиво получается. Может дело в #include &lt;iostream&gt;, надеюсь кто-нибудь мне прояснит данную ситуацию.


iostream действительно очень жирный - килобайт 200-300. Хотя какой-то чел из Норвегии в одном форуме этот iostream хвалил за отличную поддержку разноязыковых локалей, форматов цифр и дат при вводе и выводе на консоль для написания профессиональных бизнес-приложений способных работать в разных странах, рекоммендовал книжку "С++ streams and locales". Еще есть фича с MinGW, это кусочег линукса по сути.

Если есть желание написать аналогичную программу размером в 800 - 1000 байт, то надо использовать только WinAPI - ReadFile(StdInHandle,…)/WriteFile(StdoutHandle,…), отключить LIBC и поставить выравнивание в 64 байта. я умею так делать только в msvc++.

Если использовать printf/fgets из stdio.h, то килобайт в 10-20 уложиться можно.

quote:


И ещё может кто-нибудь посоветует мне хороший самоучитель по DEV C++, а не то самоучитель по Visual C++ .NET для чайников, думаю не подойдёт.

Зачем тебе это надо - ты же С++ не любишь. Мне на определенном этапе был более сподручен MSVC++ чем Дельфи, поэтому я как-то прикипел.

quote:


Много вопросов накопилось, задам ещё один: DEV C++ как мне показалось только среда разработки, а компиляторы на неё – gcc, g++. То есть если я буду пользоваться только стандартными библиотеками, и не делать вызовов функций из виндосовских dll. То мои программы могут быть кроссплатформеными, без дополнительной переработки. Так ли это.

Если использовать Gtk или Qt то можно сделать даже GUI приложение, что выгодно отличает g++ от msvs express, это да.
Post #: 4
RE: Несколько вопросов по C++. - 2007-12-16 19:24:52.226666   
realstudent

Сообщений: 15
Оценки: 0
Присоединился: 2006-10-31 11:46:09.926666
1. забей на размер - главное удовольствие :-) . потом раззберешся с компилятором и его командными ключами - поймеш что к чему
2. если ты используеш gcc и не используеш вызовы API специфичные для данной OC то твои программы почти (на 90 %) кроссплатформенные, т.е. исходный текст достаточно просто собрать на target системе этим компилятором, правда при условии что под нее портированы все используемые тобой библиотеки. отсюда следует пункт 3.
3. используй open sources library - обычно они портированы под огромное число программных платформ, хотя скорее всего тебя интересуют только linux + windows.
4. забей на devc++ он долго не обновлялся, используй codeblocks.org - возможностей и удобства значительно больше.
Post #: 5
RE: Несколько вопросов по C++. - 2007-12-17 13:47:23.610000   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
Не знаю как в DEV C++, а в msvc++ делается просто:
#pragma  comment(linker,  "/ENTRY:main")

Етим  ты  явно указываешь точку входа, что уменьшает размер  ехе-шника в разы.
Правда все аргументы функции main теряют смысл.
Post #: 6
RE: Несколько вопросов по C++. - 2007-12-17 14:32:49.596666   
kosolapov

Сообщений: 37
Оценки: 0
Присоединился: 2007-07-21 05:40:00.330000
quote:

И ещё может кто-нибудь посоветует мне хороший самоучитель по DEV C++, а не то самоучитель по Visual C++ .NET для чайников, думаю не подойдёт.

 
Они практически не отличаются(кроме внутренних библиотек, но тада имхо лучше не дев и динуху ставить).
Страуструп читать с первых дней не советую…
 
ЛУчше Г.Шилдт - Самоучитель С++ (книги двух видов, 1-я чистое С++, вторая вначале езе вписана книга Кернигана Ритчи по сям, советую конечно же 2-ю).. А потом уже делать выводы, хочется читать такую  муть как страуструп или нет =)
Post #: 7
RE: Несколько вопросов по C++. - 2007-12-17 15:48:36.046666   
kogemrka

Сообщений: 89
Оценки: 0
Присоединился: 2006-12-06 21:03:36.250000
Сорри, если повторю вышесказанное)

Самоучитель по Dev-CPP ты не найдёшь, это всего-лишь IDE - ищи любой самоучитель по C++ (естественно, что по C++ вообще, а не по MFC или .Net)
Post #: 8
RE: Несколько вопросов по C++. - 2007-12-17 20:29:41.300000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Kill_em_all

Не знаю как в DEV C++, а в msvc++ делается просто:
#pragma comment(linker, "/ENTRY:main")

Етим ты явно указываешь точку входа, что уменьшает размер ехе-шника в разы.
Правда все аргументы функции main теряют смысл.

ну, тогда уж, -nostdlib и тд и тп, и о кроссплатформенности речи не идёт. А ещё лучше .com файл – никаких накладных расходов на формат файла – чисто код и данные. Одно досадно, что ограничение в 64Kb работать начинает и код 16-битный.
Post #: 9
RE: Несколько вопросов по C++. - 2007-12-18 08:22:51.053333   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
quote:

ORIGINAL: rgo

quote:

ORIGINAL: Kill_em_all

Не знаю как в DEV C++, а в msvc++ делается просто:
#pragma comment(linker, "/ENTRY:main")

Етим ты явно указываешь точку входа, что уменьшает размер ехе-шника в разы.
Правда все аргументы функции main теряют смысл.

ну, тогда уж, -nostdlib и тд и тп, и о кроссплатформенности речи не идёт. А ещё лучше .com файл – никаких накладных расходов на формат файла – чисто код и данные. Одно досадно, что ограничение в 64Kb работать начинает и код 16-битный.


Можно поставить и выравнивание
данных, но основное сокращение размера программы произойдет засчет указания точки входа.
А я о кроссплатформенности и не говорил:).В принципе и цели никогда себе такой не ставил.
Сейчас мне углубляться в кодинге под никсы - еще больше запутатся. Но в будущем планирую.
Все равно, что тебе сейчас начать заниматься системным программированием под win.
Post #: 10
RE: Несколько вопросов по C++. - 2007-12-18 10:23:24.460000   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
quote:

ORIGINAL: Kill_em_all
Сейчас мне углубляться в кодинге под никсы - еще больше запутатся. Но в будущем планирую.
Все равно, что тебе сейчас начать заниматься системным программированием под win.


Под Линукс что stdlib.h что iostream - все равно будет по 4 Кб. Все библиотеки в dll, то есть в so.
Post #: 11
RE: Несколько вопросов по C++. - 2007-12-18 14:43:14.910000   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
quote:

ORIGINAL: Absurd

quote:

ORIGINAL: Kill_em_all
Сейчас мне углубляться в кодинге под никсы - еще больше запутатся. Но в будущем планирую.
Все равно, что тебе сейчас начать заниматься системным программированием под win.


Под Линукс что stdlib.h что iostream - все равно будет по 4 Кб. Все библиотеки в dll, то есть в so.


А я тебе что-то против говорил???

Post #: 12
RE: Несколько вопросов по C++. - 2007-12-18 15:33:08.866666   
Absurd

Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
quote:

ORIGINAL: Kill_em_all

quote:

ORIGINAL: Absurd

quote:

ORIGINAL: Kill_em_all
Сейчас мне углубляться в кодинге под никсы - еще больше запутатся. Но в будущем планирую.
Все равно, что тебе сейчас начать заниматься системным программированием под win.


Под Линукс что stdlib.h что iostream - все равно будет по 4 Кб. Все библиотеки в dll, то есть в so.


А я тебе что-то против говорил???

Про -nostdlib это тоже оффтопик.
Post #: 13
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Несколько вопросов по C++.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.