C语言比较大小耗很长时间吗,用sizeof求类型长度咋搞、、、困惑我好长时间了、、...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

输入类型名 得到类型所占字节数。

利用其他的方法可以实现。不过直接把输入作为sizeof的参数是不可以的。直接传过去的是一个字符串,既不是关键字,也不是(除了字符串以外的变量)变量名字。返回的是这个常量字符串所占的字节数。

只能是预先把各种关键字作为sizeof的操作数,得到结果。然后根据用户的选择,来进行相应的输出。

最简单的。

可以利用switch分支。

比如菜单是这样的

请选择

1: char 2:short int

3: int 4:long

...........

0:EXIT

然后用一个switch分支

int c;

while((c=getchar())!=0)

{

while(getchar()!='\n')

continue;

switch (c)

{

case 1:

printf("sizeof(char)=%d\n",sizeof(char));

break;

case2:

printf("sizeof(short int)=%d\n",sizeof(short int));

break;

case3:

..............................

break;

.

.

.

..

default:

printf("输入错误,请重新输入");

}

如果一定要使用输入类型名字的方式,那么可以使用结构体数组。

struct types

{

char typename[40];

int size;

};

然后用一个数组,保存各种类型的类型名字,以及对应类型所占空间大小。

struct types ty[20]={

{"char",sizeof(char)},

{"short int",sizeof(short int)},

{"int",sizeof(int)},

{"long",sizeof(long)},

.

.

.

.

}

然后通过接收用户从键盘输入的类型名字,在结构体数组中查找typename相同的一项,然后输出size就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值