在 C 语言中,没有像 Python 这样的内置元组数据结构
以下是一个使用 C 语言实现的灵活元组的示例:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int type;
union {
int i;
float f;
char *s;
// 在此处根据需要添加其他数据类型
} data;
} Tuple;
Tuple* create_tuple(int type, void *data, size_t data_size) {
Tuple *tuple = (Tuple *)malloc(sizeof(Tuple));
tuple->type = type;
tuple->data.data = malloc(data_size);
memcpy(tuple->data.data, data, data_size);
return tuple;
}
void free_tuple(Tuple *tuple) {
free(tuple->data.data);
free(tuple);
}
int main() {
Tuple *t1 = create_tuple(1, &42, sizeof(int));
Tuple *t2 = create_tuple(2, &3.14f, sizeof(float));
Tuple *t3 = create_tuple(3, "hello", sizeof(char *) * 5);
printf("Tuple 1: Type = %d, Data = %d\n", t1->type, *(int *)t1->data.data);
printf("Tuple 2: Type = %d, Data = %f\n", t2->type, *(float *)t2->data.data);
printf("Tuple 3: Type = %d, Data = %s\n", t3->type, (char *)t3->data.data);
free_tuple(t1);
free_tuple(t2);
free_tuple(t3);
return 0;
}
在这个示例中,我们定义了一个名为 Tuple
的结构体,其中包含一个表示数据类型的 type
字段和一个名为 data
的联合体。data
联合体可以存储不同类型的数据,如 int
、float
和 char *
等。
我们还定义了两个辅助函数 create_tuple
和 free_tuple
,用于创建和释放元组。在 main
函数中,我们创建了三个不同类型的元组,并打印了它们的内容。最后,我们释放了分配给元组的内存。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。