定义默认int为unsigned int

问题描述 投票:0回答:2

如何(如果可以的话)将默认 int 变量(在特定程序中)设置为 unsigned int?

我的意思是,如果程序中写入了

int
,编译器会将其视为
unsigned int

我的编译器是gcc 4.6.2

编辑:我无权触摸代码。

c++ gcc integer unsigned
2个回答
3
投票

您无法更改

int
的默认符号,因为根据定义它是有符号类型(第 6.2.5/4 节)。考虑必须返回类型
main
(§5.1.2.2.1/1) 的
int
函数,如果您以某种方式更改默认符号,那么
main
将返回
unsigned int
,这将导致未定义的行为,渲染你的整个应用程序相对来说毫无用处。

您无法创建宏,因为如果

int
扩展为
unsigned int
,那么如果您在某处声明了
unsigned int
,您最终会得到
unsigned unsigned int
,这不是有效类型。


3
投票

超级邪恶

#define int unsigned int

可以工作,但绝对不符合标准,你可能需要让你的编译器不那么严格(这是一件坏事)。

您可以做的其他事情是查找并替换所有出现的

int
(没有前面的
unsigned
)并将其替换为
my_typedefed_int
并添加

typedef unsigned int my_typedefed_int

这符合标准,但涉及更多,并且可能不可能。

© www.soinside.com 2019 - 2024. All rights reserved.