0
char s[10]="welcome";

这里例如&s是类型char(*)[2]。无论如何在C中找到这样的变量的类型吗?

4

2 回答 2

1

大多数* 编译器都支持typeof运算符,这非常方便。它本质上等同于 C++ 的decltype,因此您可能需要一个宏来将其转换为有用的东西,例如字符串:

#define _STRINGIFY(arg) #arg
#define STRINGIFY(arg) _STRINGIFY(arg)

*:大多数编译器都是 clang,GCC,我相信 MSVC。

于 2013-05-31T02:08:45.907 回答
0

编译器知道但当编译完成时该信息被丢弃。您不能以某种方式在运行时询问它是什么类型的变量的文本描述。没有返回字符串“char(*)[2]”的方法

为此,您必须与 C 编译器集成或编写 C 编译器并在运行时通过它运行您的代码。

于 2013-05-31T00:53:47.693 回答