Chinaunix首页 | 论坛 | 博客
  • 博客访问: 328076
  • 博文数量: 57
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-29 14:57
文章分类
文章存档

2014年(39)

2013年(13)

2012年(5)

我的朋友

发布时间:2014-06-30 15:10:23

移位操作分为左移位<<和右移位>>两种,C规定若移位的右操作数为负数或大于等于左操作数的位宽(int为32位,char为8位)时,其行为未定义。1.符号类型的左移位左移位操作,空位部分填充零。如下图:错误代码:点击(此处)折叠或打开int si1, si2, sresult;sresult = si1 << si2.........【阅读全文】

阅读(1175) | 评论(0) | 转发(0)

发布时间:2014-06-27 11:34:44

1整数转换(包括隐式和显式(使用强制转换)),必须保证不会导致丢失或曲解数据。C99规定:a.当整数类型的值转换为另一个整数类型除了_Bool,如果该值可以被另一种类型表示,它的值是不变的。b.否则如果新类型是无符号的,则该值是通过反复增加或减去MAX+1(MAX是新类型可表述的最大值),直到该值在新类型的范围内。c.否.........【阅读全文】

阅读(749) | 评论(0) | 转发(0)

发布时间:2014-06-26 14:25:25

OS;32bit ubuntu整型转换的规则:1.整形提升若变量的原型都能用int描述的话,其值范围小于INT_MAX的话就转换有符号int,其值范围大于INT_MAX的话就转换成无符号int。点击(此处)折叠或打开char c1, c2;c1 = c1 + c2 整型提升要求每个变量都提升为int大小。两个in.........【阅读全文】

阅读(740) | 评论(0) | 转发(0)

发布时间:2014-06-25 16:33:16

环境:32位 ubuntu整数值可以因为异常情况(溢出,截断或符号错误)失效,导致可利用的漏洞。1.使用size_t表示一个对象的大小的所有整数值size_t为无符号整数类型。错误代码:点击(此处)折叠或打开char *copy(size_t n, char *str) {int i;if(p == NULL) {.........【阅读全文】

阅读(596) | 评论(0) | 转发(0)

发布时间:2014-06-24 14:24:56

1.Do not modify constant valuesC99标准中说:若通过非const型左值修改const类型的对象,该行为是未定义。点击(此处)折叠或打开char const **cpp;char *cp;char const c = 'A';cpp = &cp; /* constraint violation */*cpp = &c; /*.........【阅读全文】

阅读(494) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册