Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2017, 18:44   #1
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию Вопрос про компилятор

Установил компилятор для С/С++ gcc.
Размер скомпилированного файла простейшей программы hello world
заняло 30 000 байт, когда как размер скомпилированного паскалем программы которая работает со стеком, списком, занимает 4000 байта.
Скажите чего я не понимаю? У меня конечно есть предположение. На паскале никаких дополнительных библиотек не юзалось. На С подключался
stdio.h плюс 4 строки кода и всё.
goto ∞ вне форума Ответить с цитированием
Старый 24.06.2017, 18:51   #2
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

...а если задать ключ -static будет около 10мб, и чо ?
...библиотеки да + отладочная информация, попробуйте ключ -O3 или -Os

...там сотни ключей тонкой настройки, например, обработка исключений, rtti и прочая. Если все поотключать (взять ответственность за рабочесть программы на себя) - выйдет маленький код. А так, там в основном, защиты всякие.

Последний раз редактировалось alexzk; 24.06.2017 в 18:53.
alexzk вне форума Ответить с цитированием
Старый 24.06.2017, 18:57   #3
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
...а если задать ключ -static будет около 10мб, и чо ?
...библиотеки да + отладочная информация, попробуйте ключ -O3 или -Os
забыл упомянуть строка компиляции выглядело так
Код:
gcc helloworld.h -o helloworld
Давай поподробнее про ключи, хочу услышать от человека. Как ключ влияет на исх. размер итд.
goto ∞ вне форума Ответить с цитированием
Старый 24.06.2017, 19:03   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://gcc.gnu.org/onlinedocs/gcc-2...c_2.html#SEC10
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.06.2017, 19:14   #5
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

и сразу вдогонку, в хидерах (h файл) не корректно писать код в большинстве случаев. Этот код будет везде ПРОДУБЛИРОВАН (увеличит размер), код в подавляющем большинстве случаев, должен быть в CPP файле. И да, компилятор смотрит на расширение (по умолчанию), даже стандарт языка будет зависить от CPP или С расширение (есть ключи для явного указания стандартов, игнорируя расширения).
alexzk вне форума Ответить с цитированием
Старый 24.06.2017, 19:20   #6
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
и сразу вдогонку, в хидерах (h файл) не корректно писать код в большинстве случаев. Этот код будет везде ПРОДУБЛИРОВАН (увеличит размер), код в подавляющем большинстве случаев, должен быть в CPP файле. И да, компилятор смотрит на расширение (по умолчанию), даже стандарт языка будет зависить от CPP или С расширение (есть ключи для явного указания стандартов, игнорируя расширения).
Киньте тогда ссылку на русском именно про эти нюансы, так как в книге Ритчи по крайне мере в начале про компиляторы ничего там только программирование.
goto ∞ вне форума Ответить с цитированием
Старый 24.06.2017, 19:27   #7
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

....у Ричи был совсем другой язык. Его программы даже сразу так и не скомпилируются, нужно включать специально поддержку.
Там даже синтаксис отличался от совр.
Найдите что-то не старше 2011 года и учитесь. В 2011 были приняты радикальные стандарты.
alexzk вне форума Ответить с цитированием
Старый 24.06.2017, 19:29   #8
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
....у Ричи был совсем другой язык. Его программы даже сразу так и не скомпилируются, нужно включать специально поддержку.
Там даже синтаксис отличался от совр.
Найдите что-то не старше 2011 года и учитесь. В 2011 были приняты радикальные стандарты.
Хорошо, спасибо. Постараюсь что то найти по чистому Си не старше 2011 года
goto ∞ вне форума Ответить с цитированием
Старый 24.06.2017, 19:30   #9
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

...а то понаучитесь плохому реально. Сейчас 90% ручной работы по стандарту Ричи делает компилятор, причем ЗНАЧИТЕЛЬНО более эффективно, чем человек. Но нужно и писать соотв. - т.е. оставлять машине место для маневра.
alexzk вне форума Ответить с цитированием
Старый 24.06.2017, 19:40   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
Его программы даже сразу так и не скомпилируются, нужно включать специально поддержку.
С чего вдруг? С 2 изданием 88 года вроде не должно быть особых проблем.

В gcc вроде ж стандарт c89 и используется по умолчанию если не добавить флаг для современного.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Про компилятор Des80 Общие вопросы по программированию, компьютерный форум 6 18.09.2016 17:36
Вопрос про Qt whit3g Qt и кроссплатформенное программирование С/С++ 4 04.02.2015 21:59
Вопрос про Свойство Visible и про иконки в imagelist Kappi4 Компоненты Delphi 2 21.05.2010 13:10
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24