gpt4 book ai didi

c - 在 C 中使用灵活的数组成员是不好的做法吗?

转载 作者:太空狗 更新时间:2023-10-29 16:16:12 25 4
gpt4 key购买 nike

我最近读到,在 C 语言中使用灵活的数组成员是糟糕的软件工程实践。但是,该声明没有得到任何论据的支持。这是公认的事实吗?

(Flexible array members 是 C99 中引入的一项 C 特性,通过它可以将最后一个元素声明为未指定大小的数组。例如:)

struct header {
size_t len;
unsigned char data[];
};

最佳答案

众所周知,使用 goto 是糟糕的软件工程实践。那并不能使它成为现实。有时 goto 很有用,特别是在处理清理和从汇编程序移植时。

灵活的数组成员让我印象深刻,因为它有一个主要用途,在我的脑海中,它是映射遗留数据格式,如 RiscOS 上的窗口模板格式。大约 15 年前,它们在这方面会非常有用,而且我敢肯定,仍然有人在处理此类事情时会发现它们很有用。

如果使用灵活的数组成员是不好的做法,那么我建议我们都去告诉 C99 规范的作者。我怀疑他们可能有不同的答案。

关于c - 在 C 中使用灵活的数组成员是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/246977/

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