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; }
執行結果如下: