我想在程序中打印出(或以其他方式确定)某个变量的类型.有没有好办法呢?好的,我的意思是一种有效的方式,即使它意味着故意抛出编译器错误.
例如:
client.c:55: error: incompatible types in assignment
Run Code Online (Sandbox Code Playgroud)
是我现在得到的错误.我想告诉我的是:
client.c:55: error: attempting to assign type struct a to type struct b
Run Code Online (Sandbox Code Playgroud)
或者我可以这样使用的功能:
printf(gettype(x));
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
struct b
Run Code Online (Sandbox Code Playgroud)
Ari*_*iel 57
我刚刚发现了如何做到这一点.
printf("%d", variable);
Run Code Online (Sandbox Code Playgroud)
如果变量不是int,那么gcc -Wall
会抱怨类型不匹配 - 并将打印出变量的类型,这正是您正在寻找的.
如果您使用gdb
. 然后,您可以使用以下命令设置断点:
break line_number
在要获取该变量类型的位置中断执行。从那时起,您可以使用以下命令在 gdb 中打印变量的类型:
ptype your_variable_name
或
whatis your_variable_name
最后一个将打印变量的类型以及您给出的定义。