我想创建一个新的基本类型,例如byte
:
第一个想法是使用
enum class byte: unsigned char { };
但是,这种方法存在一个问题,我无法为其定义赋值运算符,因此无法完成int
的赋值:
byte a = 42; // invalid, need to use something like "byte a = (byte)42;"
第二个想法是使用一个类:
class byte {
private:
unsigned char data;
public:
// operators
};
这种方法可行,但我担心这种方法的性能。
我的问题:
byte
类型比unsigned char
的优化程度低?byte
和unsigned char
发出相同的代码?我对任何差异都感兴趣。我知道的唯一区别是,在使用i386 System V ABI的平台(例如32位linux)上,byte
是从堆栈中返回的,而不是从函数中注册的,因此它要少一些表演者。还有其他区别吗?