typeof

lethe1203發表於2024-04-04
typeof 是 C 語言的一個擴充套件,用於獲取表示式的型別。它的主要用途包括:

1、宣告變數型別:

可以用 typeof 來宣告變數,而無需顯式指定變數的型別。這樣可以使程式碼更加簡潔和易讀,特別是在處理複雜的表示式時。

2、簡化型別名稱:

在定義結構體、聯合體等複雜型別時,使用 typeof 可以簡化型別名稱的書寫,提高程式碼的可維護性和可讀性。

3、簡化宏定義:

在宏定義中,typeof 可以幫助獲取宏引數的型別,從而使宏更加通用和靈活。
typeof的舉例demo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct apple {
    int weight;
    int color;
};

struct apple *create_apple(int weight, int color) {
    struct apple *a = malloc(sizeof(struct apple));
    if (a == NULL) {
        printf("Memory allocation error.\n");
        return NULL;
    }

    a->weight = weight;
    a->color = color;

    return a;
}

int main() {
    typeof(create_apple(0, 0)) a1 = create_apple(150, 1);
    typeof(create_apple(0, 0)) a2 = create_apple(120, 2);

    printf("Apple 1 - Weight: %d, Color: %d\n", a1->weight, a1->color);
    printf("Apple 2 - Weight: %d, Color: %d\n", a2->weight, a2->color);

    free(a1);
    free(a2);

    return 0;
}
執行結果如下:
0

相關文章