如何在borland c ++ 5.5编译器中禁用异常处理代码

时间:2011-10-20 22:25:19

标签: c exception-handling borland-c++

抱歉我的英语不好

我正在使用borland c ++ 5.5编译器,但我喜欢它 一个问题有时让我担心;我写的是纯粹的c 应用程序没有这样一个c ++'功能',但我 用-P开关编译强制'c ++ compile'因为 如果我在c模式下编译,我必须声明“int i” 在for循环之前它是愚蠢的。所以我用c ++编译 模式,但我担心自己这样做 编译器放一些异常处理代码 进入我的应用程序 - 当我查看我的编程 使用十六进制编辑器,我看到很多奇怪的字符串 可能与.exe中的异常处理有关; 当我使用-x-切换到我的应用程序时它会带来 没有效果。我甚至可以给我的progs exe链接

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

如何确保无异常处理 (而且exe中没有任何其他不必要的东西 我宁愿把它保持在里面吗?

非常感谢回答这一点,这很重要 对我来说,杉木

2 个答案:

答案 0 :(得分:3)

如果不支持作为标准一部分的异常,则不能拥有C ++。无论它对你的可执行文件有多大影响,我都不能说。

如果我是你,我会得到一个更现代的C编译器。在Windows上你应该尝试mingw。使用C99,您可以在任何地方声明变量。那个Borland编译器很古老。

答案 1 :(得分:0)

如前所述,您无法从C ++库中排除异常处理。但是还有一些其他编译器选项和其他技巧,可以帮助您减少代码大小

  1. 运行时类型标识或RTTI,用于C ++之类的内容,如typeiddynamic_cast如果不使用任何C ++可能性,可以安全地转换此选项。循环内部的变量无关紧要:-)),这可能会略微减少您的可执行文件大小。默认情况下启用RTTI选项,您可以使用-RT- switch
  2. 切换它
  3. 代码优化 - 如果使用aggregate -O2开关,则启用所有优化,程序将尽可能快地编译,但不是最小的。您应该使用单独的开关进行不同的优化。使用-Ov(归纳变量)和-Og(优化常见子表达式)优化开关,可以减少代码大小。不要使用会增加代码大小的-Oi开关(内联内部函数)
  4. BCC 5.5使用80386指令集(-3开关)编译默认值。您可以选择Pentium Pro指令集(-6开关),这可以减少代码大小。 MMX指令集也用于此选项 - 它可以提高速度,还可以减小尺寸(对不起石器时代编译器中没有SSE指令; - )
  5. 对函数使用Pascal调用约定。这样的函数将比使用C调用约定的函数快一点。一个缺点 - 您不能使用此约定的c样式变量参数列表。您可以在函数定义中使用__pascal关键字或通过向编译器提供-p开关来在源文件中启用此约定