|
本帖最后由 lvpeng-1619958 于 2018-7-25 09:47 编辑 1: uint8_t a = 1,c; int8_t b = -1; c= a/b, 结果是c = ?是多少啊? 2: uint8_t a = 0xff; uint8_t b = 0; if((~a) == b) { return 1; } else { return 0 } 在32bit系统当中,到底是return 1还是return 0? |
微信公众号
手机版
第二题 异或后 是FF 不等于0 所以返回0
评分
查看全部评分
跑个程序就可以了呀,在这纠结?
可能不同的编译器,会有不同的结果吧,我这是GCC
评分
查看全部评分
看样子,你用的是CodeBlocks?
第二个问题,应该是0。C语言中,所有的比较运算符,操作数都是使用的int型(或指针类型),其他类型会有隐含类型转换的操作
评分
查看全部评分
楼主写代码应该严谨一点:C不等于c呀!
退一步,改c为C,
则:
uint8_t a = 1,C;
这里的a和C是无符号,而b是负数:
则C= a/b,商是负数,uint8_t C肯定溢出!!
评分
查看全部评分
是滴,CodeBlocks超级方便
用这个来构建STM32的开发环境吗?
不是用来开发STM32,单纯验证C
因为楼主的问题是C
TC、WinTC、VC6.0、CodeBlocks,基本都是用来写个小程序,验证点算法,转换点文件。
求跨平台,STM32开发环境构建方案 官方的SW4STM32 实在不好用呀
嗯
第一题大写修改为小写了
第二题是取反 不是异或哦