c中变量的类型

时间:2013-05-30 23:57:56

标签: c arrays

char s[10]="welcome";

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

2 个答案:

答案 0 :(得分:1)

大多数*编译器都支持typeof运算符,这非常方便。它基本上等同于C ++的decltype,所以你可能需要一个宏来把它变成有用的东西,比如字符串:

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

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

答案 1 :(得分:0)

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

要做到这一点,您必须要么与C编译器集成,要么编写C编译器并在运行时通过它运行代码。