C 语言中的 _Generic 关键字 ? 1:20


C 语言中的 _Generic 关键字用于为不同的数据类型定义宏。此新关键字已在 C11 标准版本中添加至 C 编程语言中。_Generic 关键字用于帮助编程人员更加高效地使用宏。

此关键字基于变量的类型转换宏。我们来看一个示例,

#define dec(x) _Generic((x), long double : decl, \ default : Inc , \ float: incf )(x)

上述语法是针对不同方法声明任何宏作为通用宏的方法。

我们来看一个示例代码,此代码将定义一个宏,该宏将基于数据类型返回值 −

示例

实时演示

#include <stdio.h>
#define typecheck(T) _Generic( (T), char: 1, int: 2, long: 3, float: 4, default: 0)
int main(void) {
   printf( "passing a long value to the macro, result is %d 
", typecheck(2353463456356465));    printf( "passing a float value to the macro, result is %d
", typecheck(4.32f));    printf( "passing a int value to the macro, result is %d
", typecheck(324));    printf( "passing a string value to the macro, result is %d
", typecheck("Hello"));    return 0; }

输出

passing a long value to the macro, result is 3
passing a float value to the macro, result is 4
passing a int value to the macro, result is 2
passing a string value to the macro, result is 0

更新于:2019 年 10 月 4 日

754 次浏览

启动你的事业

通过完成课程获取认证

开始学习
广告