如何(如果可以的话)将默认 int 变量(在特定程序中)设置为 unsigned int?
我的意思是,如果程序中写入了
int
,编译器会将其视为unsigned int
。
我的编译器是gcc 4.6.2
编辑:我无权触摸代码。
您无法更改
int
的默认符号,因为根据定义它是有符号类型(第 6.2.5/4 节)。考虑必须返回类型 main
(§5.1.2.2.1/1) 的 int
函数,如果您以某种方式更改默认符号,那么 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
这符合标准,但涉及更多,并且可能不可能。