首页 > 解决方案 > 使用单独文件中的数据类型在 C 中定义结构类型

问题描述

我正在阅读内容如下的文本文件

char "ID", float "5.1", float "0.01", float "5",  int "1"

我想用文本文件中指定的类型定义一个结构类型变量,例如

struct myStruct
{
   char ID;
   double a1;
   double a2;
   double a3;
   int index;
};

在阅读文本文件之前,我不知道这些变量的类型。有没有办法在 C 中做这样的事情?

标签: cstruct

解决方案


我想用文本文件中指定的类型定义一个结构类型变量

[...]

在阅读文本文件之前,我不知道这些变量的类型。有没有办法在 C 中做这样的事情?

喜欢这个”,也许取决于你对“喜欢”的定义,但不完全是你描述的。

C 级数据类型是 C 源代码的一个特性。它们在运行时不存在,所以你当然不能定义新的。但是您可以设计一个系统来处理由数据类型标签和相应的文本数据组成的文本输入。然后,您可以控制数据在内存中的表示,如果您愿意,可以将其解析并格式化为类似于 C 结构表示的形式。但是,无论如何,您都需要提供自己的函数来访问这些伪结构的属性。C 成员访问运算符不适合。

另请注意,虽然我说“你可以”,但这是一般意义上的“你”。这不是一个简单或小的项目,你首先提出这个问题让我猜测,以你目前的经验水平,这对你来说将是非常具有挑战性的。


推荐阅读