我想这样做:
typedef register unsigned int _newint;
基本上,一个简洁的别名register unsigned int
作为_newint
.
但是出现了一个错误,"可能无法指定多个存储类",在register
下面.
我想知道我是否能做到这一点;如果是,那怎么办?
我想这样做:
typedef register unsigned int _newint;
基本上,一个简洁的别名register unsigned int
作为_newint
.
但是出现了一个错误,"可能无法指定多个存储类",在register
下面.
我想知道我是否能做到这一点;如果是,那怎么办?
我想知道我是否能做到这一点,如果是,那么如何做到?
typedef
和register
都算作存储类,不过对于typedef
来说,这有点技术性.您不能将任何标识符声明为具有多个存储类,因此直接回答是"否",您不能这样做.
可以想象,使用宏而不是typedef
来实现类似的效果:
#define _newint register unsigned int
void foo() {
_newint x;
}
然而,这是误导,所以你不应该.
更一般地说,您可能根本不应该使用register
存储类.现代编译器不需要您的帮助来确定要在寄存器中存储哪些变量,而register
只是一个提示,因此唯一值得注意的效果是(根据规则)阻止您获取用该存储类声明的对象的地址.