gpt4 book ai didi

c - typedef 定长数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:50:04 25 4
gpt4 key购买 nike

我必须定义一个 24 位数据类型。我正在使用 char[3] 来表示该类型。我可以将 char[3] 类型定义为 type24 吗?我在代码示例中尝试过。我将 typedef char[3] type24; 放在我的头文件中。编译器没有提示它。但是当我在我的 C 文件中定义一个函数 void foo(type24 val) {} 时,它确实报错了。我希望能够定义像 type24_to_int32(type24 val) 这样的函数,而不是 type24_to_int32(char value[3])

最佳答案

typedef 将是

typedef char type24[3];

然而,这可能是一个非常糟糕的主意,因为结果类型是一个数组类型,但它的用户不会看到它是一个数组类型。如果用作函数参数,它将通过引用传递,而不是通过值传递,并且它的 sizeof 将是错误的。

更好的解决方案是

typedef struct type24 { char x[3]; } type24;

您可能还想使用 unsigned char 而不是 char,因为后者具有实现定义的符号。

关于c - typedef 定长数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451225/

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