代码之家  ›  专栏  ›  技术社区  ›  Andronicus

如何告诉C编译器不要优化掉一个未使用的类?

  •  1
  • Andronicus  · 技术社区  · 15 年前

    问题是我想在运行时通过反射来使用这些类型。

    有没有一个属性或者其他方法可以告诉编译器不要优化给定的类?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Timwi    15 年前

    您是否正在使用某种模糊处理程序或优化程序(例如Dotfuscator)来删除类型,因为它认为这些类型未使用?如果是这样,您将不得不配置该软件,使其不会删除它们。这不是C编译器的问题。

    否则,我自己从来没见过。所有类型始终存在于程序集中,即使它们未被引用。其他任何事情都是疯狂的,因为它会让反射变得毫无用处,正如你所注意到的。

    为了测试这一点,我只编译了一个小项目,其中有两个未使用的类,一个类只被其中一个未使用的类使用。即使在发布模式下,甚至在启用优化的情况下,它们都没有被删除。

        2
  •  -2
  •   Musa Hafalir    15 年前

    以下是有关禁用/启用优化问题的直接文档:

    http://msdn.microsoft.com/en-us/library/t0hfscdc%28v=VS.100%29.aspx

    然而,我也发现有些代码由于优化而没有包含在程序集中,这很奇怪。