c - 如果是指针,是否可以将 _Generic 的控制表达式提升为数组类型?
问题描述
如果它是指针,我需要将控制表达式(即:第一个,主要参数)_Generic
提升为数组类型,并且对于非指针类型保持不变。我知道相反的效果:数组类型衰减为“等效”指针类型,但是,这不是我想要的……</p>
换句话说,以下应该有效:
#define PROMOTE_MACRO(x) _Generic(something(x),\
int[8] : 1, default: 0)
int *ptr, normal;
printf("%d, %d\n", PROMOTE_MACRO(ptr), PROMOTE_MACRO(normal));
// outputs: 1, 0
数组的大小无关紧要(它可以被删除,但是_Generic
需要一个完整的类型名称......)。我所需要的只是一种编译安全的方式来提升(并且唯一的)指向它的等效数组类型的某种大小的指针。可能吗?
解决方案
推荐阅读
- json - 反应原生 json 图像
- python - 如何使用对象比较函数反转 heapq 堆中元素的顺序?
- ios - Obj-c - 显示“使用 Apple Pay 支付”按钮?
- sql - 带有 like 的 Where 子句要注意 4 位数字
- android - 如何为 BottomNavigationView 设置键盘可访问性?
- r - 连续点的读取和计数
- javascript - 请求范围的服务
- angularjs-directive - 类型错误:使用带有环形材料的 ngModel 时无法读取未定义的属性“bookIsbn”
- r - 使用 quosure 调用变量值
- java - 在数据库中存储枚举