c
朝气
想法太多, 做的太少,
展开
-
C 语言移位操作陷阱
C , C++ 对于左移位数是负数或者大于等于操作数长度时,没有确定结果。 比如下面例子中,对于32位的无符号整形,我想得到 a 从0~K-1位是1,其他位是0的结果:unsigned int a = (1<<K)-1;当K是32时,结果就不确定了。 在cuda 代码中可以得到预期结果a = 0xffffffff 在VC X64工程中结果是a = 0x00000000正确的写法应该是:a =原创 2016-02-29 11:13:54 · 354 阅读 · 0 评论 -
c,c++语言中 i++ 与 ++i
原文链接(这里只说结论,具体实验看原文)先来看这样一道题目:(某企业面试题) 设有int a=1;那么下面几条语句哪些有错,哪些正确? A. ++a += ++a; B. ++a += a++; C. a++ += a++; D. a++ += ++a; 不同点i++:返回没有+1之前的i值。 返回一个右值,不能对右值进行赋值操作。 在机器码中转载 2016-04-13 21:10:59 · 444 阅读 · 0 评论