typeof
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; }
执行结果如下:

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix