文章分类 -  《C和指针》

摘要:---恢复内容开始---一、预定义符号(1) __FILE__ 进行编译的源文件名 __LINE__ 文件当前行的行号 常用用法如下: #define DEBUG_PRINT printf("File:%s Line:%d:" \ __FILE__,__LINE__)(2) 一个常见的约定就是把宏名字全部大写 例如: #define MAX(a,b) ((a)>(b)?(a):(b))(3)undef #undef name //用于移除一个宏定义 如果一个现存的名字需要被重新定义,那么它的旧定义首先必须用#undef移除(4... 阅读全文
posted @ 2013-07-03 22:13 z折腾 阅读(192) 评论(0) 推荐(0)
摘要:一、C语言中函数参数入栈的顺序先通过一个小程序来看一看:#includevoid foo(int x, int y, int z){ printf("x = %d at [%X]n", x, &x); printf("y = %d at [%X]n", y, &y); printf("z = %d at [%X]n", z, &z);}int main(int argc, char *argv[]){ foo(100, 200, 300); return 0;}运行结果:x = 100 at [BFE28760 阅读全文
posted @ 2013-07-02 21:47 z折腾 阅读(224) 评论(0) 推荐(0)
摘要:一、计数一个值中值为1的位的个数//这个函数返回参数值中值为1的位的个数int count_one_bits(unsigned value){ int ones=0; //当这个值中还存在一些值为1的位时 for(ones =0;value!=0;value>>=1) { if((value&1)!=0) { ones++; } }} (1)这里我们先假设value的值为 0001 0000; (2)那么value&1不为0,则ones加1; (3) 然后value右移1位;即00... 阅读全文
posted @ 2013-07-01 21:33 z折腾 阅读(220) 评论(0) 推荐(0)