您好,登錄后才能下訂單哦!
在 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。