как отключить код обработки исключений в компиляторе Borland C ++ 5.5 - PullRequest
0 голосов
/ 21 октября 2011

Извините за мой слабый английский

Я использую компилятор borland c ++ 5.5 и мне это нравится, но иногда меня беспокоит один вопрос;Я пишу приложения на чистом c, но не с одной «особенностью» c ++, но я компилирую с ключом -P для принудительной компиляции c ++, потому что если я компилирую в c-режиме, мне нужно объявить «int i» перед циклом for, и этоглупый.Поэтому я компилирую в режиме c ++, но меня беспокоит то, что компилятор помещает некоторый код обработки исключений в мои приложения - когда я смотрю в свою прогу с помощью hex-редактора, я вижу много странных строк, возможно связанных с обработкой исключений в .exe;когда я использую -x- переключатель для моего приложения, это не дает никакого эффекта.Я даже могу дать ссылку на мои проги exe

dl.dropbox.com / u / 42887985 / unpack% 20aeroplane.zip

Как я могу убедиться, что нет обработки исключений (и никакихдругие ненужные вещи в exe, потому что я предпочитаю держать их крошечными) присутствует внутри?

очень много tnx для ответа на это, это важно для меня, fir

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Вы не можете иметь C ++ без поддержки исключений, которые являются частью стандарта.Я не могу сказать, имеет ли это большое влияние на ваш исполняемый файл.В Windows вы должны попробовать mingw.С C99 вы можете объявлять переменные где угодно.Этот компилятор Borland древний.

0 голосов
/ 21 октября 2011

Как было отмечено, нельзя исключать обработку исключений из библиотеки C ++.Но есть также некоторые другие опции компилятора и другие приемы, которые могут помочь вам уменьшить размер кода

  1. Идентификация типа во время выполнения или RTTI, который используется в C ++ для таких вещей, как typeid и dynamic_cast Вы можете безопасно отключить эту опцию, если не используете какие-либо возможности C ++ (определение переменных внутри циклов не имеет значения :-)), это может немного уменьшить размер исполняемого файла.Опция RTTI включена по умолчанию, и вы можете переключить ее с помощью -RT- switch
  2. Оптимизация кода - если вы используете агрегатный ключ -O2, тогда все оптимизации включены, программа будет скомпилирована, чтобы быть максимально быстройно не самый маленький.Вы должны использовать отдельные ключи для разных оптимизаций.Используйте ключи оптимизации -Ov (переменные индукции) и -Og (оптимизация общих подвыражений), которые могут уменьшить размер кода.Не используйте ключ -Oi (встроенные встроенные функции), который увеличит размер кода
  3. BCC 5.5 компилирует значение по умолчанию, используя набор инструкций 80386 (ключ -3).Вы можете выбрать набор инструкций Pentium Pro (переключатель -6), который может уменьшить размер кода.Набор команд MMX также используется с этими параметрами - он увеличивает скорость, а также уменьшает размер (извините, нет инструкций SSE в компиляторе каменного века; -))
  4. Использовать соглашение о вызовах Pascal для функций.Такая функция будет немного быстрее и меньше, чем те, которые используют соглашение о вызовах Си.Один недостаток - вы не можете использовать список переменных в стиле c с этим соглашением.Вы можете включить это соглашение в исходных файлах, используя ключевое слово __pascal в определении функции или предоставив ключ -p для компилятора
...