我们可以在C中更改size_t的大小吗?

时间:2009-11-07 01:49:50

标签: c size-t

我们可以在C中更改size_t的大小吗?

3 个答案:

答案 0 :(得分:8)

没有。但为什么你甚至想要这样做呢?

答案 1 :(得分:4)

size_t不是宏。对于合适的无符号整数类型,它是typedef

size_t<stddef.h>(和其他标题)中定义。

可能是typedef unsigned long long size_t;而你真的甚至不应该考虑改变它。 标准库按照标准库的定义使用它。如果您更改它,因为您无法更改标准库,您将收到各种错误,因为您的程序使用与标准库不同的size_t大小。您无法再致电malloc()strncpy()snprintf(),...

答案 2 :(得分:1)

如果你想分叉Linux或NetBSD,那么“是”

虽然你可以重新定义宏,但这个宏可能是一个typedef。

如果您要定义一个环境,那么根据需要指定size_t是完全合理的。然后,您将负责符合代码所需的所有C99标准函数size_t

所以,这取决于你的情况。如果您正在为现有平台开发应用程序,则答案为

但是,如果您使用一个或多个编译器定义原始环境,那么答案是,但您已经为您完成了工作。您将需要使用API​​元素size_t的所有库例程的实现,这些例程可以使用新的size_t typedef与其余代码一起编译。因此,如果您使用NetBSD或Linux(也许是嵌入式系统),那就去吧。否则,你可能会发现它“不值得努力”。