| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 535 人关注过本帖
标题:求解,int 和 size_t 的区别
只看楼主 加入收藏
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
结帖率:80%
收藏
 问题点数:0 回复次数:2 
求解,int 和 size_t 的区别
#include <stdio.h>
 #define ELEMENT_COUNT   (sizeof (array)/sizeof (array[0]))
int array[]={1,2,3,4,5} ;
 int main (void)
{
int  d = -1 ;
/*  ... ... ... */
if (d <= ELEMENT_COUNT)
printf ("Ha ha ,we succeed ! \n");
 return  0;
 }
为什么没有输出那句话?求解。
搜索更多相关主题的帖子: include 
2014-05-14 22:20
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
因为一般在32位环境下, size_t 是 unsigned int,64位环境下则是 unsigned long long。
在比较 int 和 unsigned int 时,将按照 unsigned int 来比较,因此在32位环境下,
d == (int)-1 == (unsigned int)0xffffffff == 4294967295。


if (d <= ELEMENT_COUNT)
改为
if (d <= (int)ELEMENT_COUNT)
即可。
2014-05-14 23:00
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
回复 2 楼 top398
哦,原来是这样,谢谢了
2014-05-15 09:09
快速回复:求解,int 和 size_t 的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019187 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved