Несколько вопросов по C++.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Несколько вопросов по C++. - 2007-12-15 14:13:47.673333
|
|
|
Alaget
Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
|
Вчера скачала DEV C++ зашла в папку Examples, а там пример:
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
char quit;
quit = '\0';
while (quit != 'q')
{
cout << "Hello ! This is a console app." << endl;
cout << "To create a console, go to Project Options and select" << endl;
cout << "\'Win32 Console\'." << endl;
cout << "Press q to quit " << endl;
cin >> quit;
}
return 0;
}
По коду понятно что выводятся строки, если нажимаешь кнопочку q то программа завершается. Запустила его. Всё так, и есть – сегодня же повыпендриваюсь перед своим окружением, что я теперь программирую на C++, там получаются программы маленького размера, думаю сразу надо сравнить на делфи такое чудо 8kb весит, а на C++ сколько?. Посмотрела и моя челюсть отвисла вниз файл весил 464kb. Я над C++ не стебусь мне за ребят обидно, как же так на каждом углу «цеж малый размер, цеж малый размер», а тут вот как некрасиво получается. Может дело в #include <iostream>, надеюсь кто-нибудь мне прояснит данную ситуацию. И ещё может кто-нибудь посоветует мне хороший самоучитель по DEV C++, а не то самоучитель по Visual C++ .NET для чайников, думаю не подойдёт. Много вопросов накопилось, задам ещё один: DEV C++ как мне показалось только среда разработки, а компиляторы на неё – gcc, g++. То есть если я буду пользоваться только стандартными библиотеками, и не делать вызовов функций из виндосовских dll. То мои программы могут быть кроссплатформеными, без дополнительной переработки. Так ли это.
|
|
|
RE: Несколько вопросов по C++. - 2007-12-15 18:27:37.816666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
у-ух… RTFM!!!
|
|
|
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. То мои программы могут быть кроссплатформеными, без дополнительной переработки. Так ли это. Так.
|
|
|
RE: Несколько вопросов по C++. - 2007-12-15 21:13:38.950000
|
|
|
Absurd
Сообщений: 335
Оценки: 0
Присоединился: 2007-08-24 13:14:11.566666
|
quote:
ORIGINAL: Alaget Я над C++ не стебусь мне за ребят обидно, как же так на каждом углу «цеж малый размер, цеж малый размер», а тут вот как некрасиво получается. Может дело в #include <iostream>, надеюсь кто-нибудь мне прояснит данную ситуацию. 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, это да.
|
|
|
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 - возможностей и удобства значительно больше.
|
|
|
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 теряют смысл.
|
|
|
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-ю).. А потом уже делать выводы, хочется читать такую муть как страуструп или нет =)
|
|
|
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)
|
|
|
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-битный.
|
|
|
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.
|
|
|
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.
|
|
|
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. А я тебе что-то против говорил???
|
|
|
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 это тоже оффтопик.
|
|
|
|
|