Closed. This question needs details or clarity. It is not currently accepting answers. Learn more
想改进这个问题吗?添加细节并通过editing this post澄清问题。
两年前关闭。
我是一个新程序员,主要使用C99的Code::Blocks。
我最近发现了typeof(),因为它被隐藏为
我想知道你是否可以保存一个类型作为type of的结果。类似于:
type a = __typeof__(?);

或者
#define typeof __typeof__
type a = typeof(?);

这可能吗?

最佳答案

您应该避免typeof__typeof __(),因为它们不是标准的C。最新的C版本(C11)通过_Generic关键字支持这一点,该关键字以相同的方式工作。
C中没有“类型”,但您可以自己轻松地创建一个:

typedef enum
{
  TYPE_INT,
  TYPE_FLOAT,
  TYPE_CHAR
} type_t;

#define get_typeof(x)   \
  _Generic((x),         \
    int:   TYPE_INT,    \
    float: TYPE_FLOAT,  \
    char:  TYPE_CHAR );

...

float f;
type_t type = get_typeof(f);

关于c - 如何保存typeof的结果? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42222379/

10-12 17:16