我正在使用armcc编译器开发一些嵌入式软件。出于调试目的,使用-O0标志将优化保持在最低限度。为了提高代码的清晰度,我将一些枚举和结构定义移到了一个具有公共访问权限的类中。
由此:
enum A{
a,
b,
c,
d
};
struct C{
int q;
int w;
int e;
};
class myClass{
....
};
对此:
class myClass{
public:
enum A{
a,
b,
c,
d
};
struct C{
int q;
int w;
int e;
};
....
};
并通过 myClass 与他们联系,例如;
myClass::C new_struct;
new_struct.q= myClass::a;
但令我惊讶的是,即使代码没有其他差异,它也将代码大小增加了 600 字节。我假设它是由用直接值替换枚举的编译器优化(即使在 -O0 处也有一些优化活动)引起的,但对此不确定。什么可能导致代码大小增加(或阻止优化,如果是这种情况)?