将默认int定义为unsigned int

Define the default int to unsigned int

本文关键字:int unsigned 定义 默认      更新时间:2023-10-16

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

我的意思是如果在程序中写入int,编译器将其视为unsigned int

我的编译器是gcc 4.6.2

编辑:我没有权限碰代码

你不能改变int的默认签名,因为它是一个有符号类型(§6.2.5/4)。考虑main函数,它必须返回类型int (§5.1.2.2.1/1),如果您以某种方式更改默认签名,那么main将返回unsigned int,这将导致未定义的行为,使整个应用程序相对无用。

你不能创建宏,因为如果int扩展为unsigned int,那么如果你在某处声明了unsigned int,你最终会得到unsigned unsigned int,这不是一个有效的类型。

超级恶魔

#define int unsigned int

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

您可以做的其他事情是找到并替换所有出现的int(没有前面的unsigned),并将其替换为my_typedefed_int并添加

typedef unsigned int my_typedefed_int

这是标准兼容的,但更复杂,可能不可能

相关文章: