gpt4 book ai didi

c - C 中等效的代数数据类型

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

我正在编写一个程序来读取数据流并将其解析为一些值:整数、 float 、字符或包含一组值(可以嵌套)的复合值。我怎么能用 C 表示呢?我在考虑 intfloatchar 的 union ,然后有一个指针数组指向这些复合值的 union ,但是不能嵌套。

最佳答案

(我想象你正在解析一个 Xml 文件)

我们假设您有一堆节点。每个节点都可以有一个值,它可以是一组兄弟节点中的一个,并且可以有子节点。这会给你一个像这样的结构:

 struct Node
{
DATA Value;
DATATYPE Type;
Node* nextSibling;
Node* firstChild;
};

DATA 可以是您描述的 union ,也可以是单独的变量。但是,由于您将以与存储它们相同的形式从中读取值,因此 union 应该没问题。 DATATYPE 应该是一个枚举。

关于c - C 中等效的代数数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603527/

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