|
发表于 2019-7-29 22:27:48
|
显示全部楼层
本帖最后由 Croper 于 2019-7-29 22:29 编辑
使用sizeof可以判断出变量的长度,
使用类型转换后是否是原值能够判断出类型
这里是能够判断double,float,int,long long四种类型的代码,根据需要可以自行扩展
- #include <stdio.h>
- #define type32(a) (int)a==*(int*)&a?"int":"float"
- #define type64(a) (long long)a==*(long long*)&a?"long long":"double"
- #define type(a) sizeof(a)==sizeof(int)?type32(a):type64(a)
- int main(){
- int a;
- long long b;
- float c;
- double d;
- printf("%s %s %s %s",type(a),type(b),type(c),type(d));//输出int long long float double
- }
复制代码 |
|