C语言
huasion
这个作者很懒,什么都没留下…
展开
-
return 的一个问题
函数中return后面什么都不跟 那么返回值是什么?int Fac(int n){ int a ; a = 100; a = a+1; n=n*4; a = a *3; //最后一行 return ;}测试发现 这种情况下 返回303 但是如果最后一行是a+=2 or a = a +1的话 则return值变成了8原创 2010-11-20 20:59:00 · 677 阅读 · 0 评论 -
define和typedef + tips
<br />define和typedef <br />http://hi.baidu.com/%C9%DB%B7%C9/blog/item/9d54c1fc602ec7f5fd037f4a.html<br /> <br /> <br />tips: 表达式中存在有符号和无符号数时,全部转化为无符号数格式原创 2010-11-22 20:56:00 · 587 阅读 · 0 评论 -
C语言中变参函数解析
1. 变参函数:即参数个数、类型皆不定的函数,最常见的如printf()函数;2. 头文件:早期Unix System V兼容方式头文件名是, ANSI标准规范指定头文件名, GCC目前已经不再支持 include varargs.h文件3. 宏定义:va_list(), va_arg(), va_start(), va_end();4. 源原创 2011-11-01 16:43:23 · 1292 阅读 · 0 评论 -
取模运算和求余运算的区别
通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的。对于整型数a,b来说,取模运算或者求余运算的方法都是:1.求 整数商: c = a/b;2.计算模或者余数: r = a - c*b.求模原创 2011-10-09 16:16:41 · 58276 阅读 · 15 评论 -
一行代码实现值交换
如下:int swapValue(int * p1, int * p2){ *p2=(*p1^*p2)^(*p1=*p2);}看似不需要中间变量,实际上第一个括号的运算结果肯定需要一个地方保存的。因此 没太大意义。原创 2012-09-19 10:32:04 · 1261 阅读 · 0 评论 -
谈谈switch语句
switch 语句经常使用,但是要注意一些特殊情况。MATLAB的switch里支持以下写法: switch(1): case i: **** case j: ****其中,i和j是变量,好处是可以判断哪个变量为1,以方便处理。 C语言不允许以上写法,switch后面的原创 2012-09-24 15:16:08 · 953 阅读 · 0 评论 -
结构体对齐
结构体对齐问题 以下结论均在GNU GCC上验证 概念: 偏移量——成员地址相对结构体地址的偏移 对齐原则:1. 结构体中某成员的偏移量必须是该成员类型大小的整数倍 struct st{char a;short b;double c;}st1 >>b 的偏移量必须是 short 大小的整数倍, 故在 a 后面填原创 2010-11-23 16:17:00 · 590 阅读 · 0 评论