C语言
sunheshan
这个作者很懒,什么都没留下…
展开
-
typedef+函数
今天看uc/gui的源码 typedef void tRect2TextRect (LCD_RECT * pRect); 以前怎么看到过这种typedef原创 2014-06-26 15:35:59 · 886 阅读 · 0 评论 -
C中的+0与-0
**C中的+0与-0 因为-1 在内存中的存储是 FFFFFFFF。而 -0比-1大于1,所以 -0 本来实际内存应该为 100000000 然而整形只有四个字节,所以必须舍去最高位1,最后成为00000000和+0没有什么区别,但是进行过类似的运算在 EFL标记位中的进位标记和符号位会改变。而1000_0000则是-128**原创 2015-09-20 12:31:40 · 1070 阅读 · 0 评论 -
逻辑与’&&’和逻辑或’||’的陷阱
为了提高系统效率,逻辑与和逻辑或操作的规定如下:如果对第一个操作数求值后就可以推断出最终结果,第二个操作数就不会进行求值!比如下面代码: if((i>=0)&&(i++ <=max)) { //其它代码 } 在这个代码中,只有当i>=0时,i++才会被执行。这样,i是否自增是不够明确的,这可能会埋下隐患。逻辑或与之类似。转载 2015-09-20 12:33:28 · 1119 阅读 · 0 评论 -
怎样取整
C语言的浮点数到整数的转换会去掉小数部分,因此在取整之前加上0.5会时大于等于0.5的小数部分进位。int ( x <0 ? x-0.5:x+0.5)注意:因为取整的默认方式是截断,因此通常在将浮点数转换为整数的时候最好都使用显式的取整步骤。一不小心,就有可能将你认为的8.0转换成了7,因为它的内部表示可能是7.999999.转载 2015-09-20 12:30:08 · 979 阅读 · 0 评论 -
字符串
1 字符串被放在了哪里 void main() { const char a[4] = “d”; char b[4] = “ddd”; char c[] = “ddd”; char *d = “ddd”; const char *e =”dddd”;a[0] = ‘a’; b[0] = ‘a’; c[0]= ‘a’ d[0]=’a’; e[0]=’a’ }其中1原创 2015-09-20 12:28:15 · 485 阅读 · 0 评论 -
考考你的C语言
**问题1:**int main(void) { int x=3; fun(); printf("%d",x); }void fun(void) {}实现fun(),是main函数中的打印结果不是3!**问题2**int main(void) { int x=3; fun(); x = 4; printf("%d",x); }void fu原创 2015-12-29 19:37:29 · 1017 阅读 · 7 评论