博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年8月22日

摘要: 效率:带参宏比函数效率高,因为,宏是编译之后把代码嵌进去了,而函数调用需要很多的步骤(比如保存现场,恢复现场等操作),但是宏生存的文件体积大,因为,替换一次宏就需要生存一个相应的代码段,而函数不会,函数只会有1次代码量。问题:有参数宏,最大的一个问题就是它对参数的多次求值,而函数只对参数求值一次。比如#define isdigit(c) ('0' <= (c) && (c) <= '9')如果我这样调用isdigit(c=getchar()), 看看问题出来了吧。所以,C标准中规定库函数可以用宏实现,但是必须保证只求值一次。其实C库中 阅读全文

posted @ 2011-08-22 13:30 bug yang 阅读(627) 评论(0) 推荐(0) 编辑

摘要: 这里先记一点,数组在作为参数传递的时候,传入的只是它的首地址,通过下面的程序来理解一下:#include <stdio.h>void change(int a[]){ printf("the size of array in change function is %d\n",sizeof(a));}int main(void){ int a[]={1,2,3}; change(a); printf("the size of array in main function is %d",sizeof(a));}/***************** 阅读全文

posted @ 2011-08-22 10:11 bug yang 阅读(194) 评论(0) 推荐(0) 编辑