首页 > 解决方案 > 检测宏参数是结构/直接类型还是 C 中的指针 - GCC 的内置函数是什么?

问题描述

为了在编译时区分非指针和指针,可以将宏用作:

#define IS_STRUCT_SUBSTANTIAL(x) (sizeof(x) != sizeof(void *))

但是,对于 8 字节结构,它将失败。我曾经发现一个 GCC 内置函数根据变量类型返回不同的整数——它为指针返回一个不同的值,允许完全检测它们。但是我再也找不到它了——它不在网站上。有人可以提供内置的名称吗?

标签: cpointersgccmacrosbuilt-in

解决方案


推荐阅读