gpt4 book ai didi

c - 如何使用带有 typedef 的寄存器存储类?

转载 作者:行者123 更新时间:2023-12-05 02:30:22 27 4
gpt4 key购买 nike

我想这样做:

typedef register unsigned int _newint;

基本上,register unsigned int 的简明别名是 _newint

但是出现错误,“不能指定多个存储类”,强调 register

我想知道我能不能做到这一点;如果是那么怎么办?

最佳答案

I want to know if I can do this or not, if yes then how?

typedefregister 都算作存储类,尽管这在 typedef 的情况下有点技术性。您不能将任何标识符声明为具有多个存储类,因此直接的答案是否定的,您不能这样做。

可以想象,您可以使用宏而不是 typedef 来实现类似的效果:

#define _newint register unsigned int

void foo() {
_newint x;
}

然而,这是一种误导,因此您不应该这样做。

更一般地说,您可能根本不应该使用 register 存储类。现代编译器不需要您的帮助来确定将哪些变量存储在寄存器中,并且 register 只是一个提示,因此唯一值得注意的效果是(根据规则)阻止您获取地址使用该存储类声明的对象。

关于c - 如何使用带有 typedef 的寄存器存储类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71885902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com