generic泛型c语言编程,_Generic关键字及其语法和应用(C11标准),C语言_Generic详解...

本文介绍了C11标准中的_Generic关键字,它为C语言提供了类似泛型编程的能力。通过示例展示了如何使用_Generic创建统一接口,以及如何处理类型不匹配情况,并给出了类型匹配和default处理的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对接触过面向对象程序设计的程序员来讲,相信各位对泛型编程并不陌生。在 C11 标准中,_Generic 关键字可以让 C 语言也如同 C++ 等面向对象程序设计语言一样,使其支持轻量级的泛型编程设计。

利用 _Generic 关键字,可以简单地将一组具有不同类型却有相同功能的函数抽象为一个统一的接口,语法形式如下:

generic-selection:

_Generic (assignment-expression, generic-assoc-list)

generic-assoc-list:

generic-association

generic-assoc-list , generic-association

generic-association:

type-name : assignment-expression

default : assignment-expression

与 sizeof 与 typeof 类似,_Generic 中的 assignment-expression 只用于在编译时获得该表达式的类型,而不会对该表达式做运行时计算,如以下代码所示。

#include

#include

#include

#include

#define getTypeName(x) _Generic((x), _Bool:"_Bool",\

char: "char", \

signed char: "signed char", \

unsigned char: "unsigned char", \

short int: "short i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值