摘要: 昨天在公司调程序,最后定位到是由一个宏定义引起的Bug。我的宏定义是这样写的: #define BYTE(n) (n * 2)我一直认为我不会在宏定义上犯错误,因为我见过一些错误的例子,所以我很小心的加了个括号。遗憾的是这还是错误的。知道是一回事,实践是另一回事!当程序执行下面这句时结果就不是我预期的了:int i = BYTE(1 + 2)所以正确的写法是:#define BYTE(n) ((... 阅读全文
posted @ 2012-11-25 22:58 bitbyte 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 转自:酷壳 – CoolShell.cn作者:陈皓 下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下面的代码修改正确,不过,你只能增加或是修改其中的一个字符,请你给出三种答案。 1: int n = 20; 2: 3: for(int i = 0; i < n; i--){ 4: printf("-"); 5: }(The End) 阅读全文
posted @ 2012-11-25 22:13 bitbyte 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 描述:下面的C语言程序中,第2行将 _DEF_ 宏定义为0使程序最终输出结果为 " world" ; 如果将其改为1,程序将输出 "hello," 。问题:如何修改对 _DEF_ 的宏定义,使程序输出 "hello, world" ?要求:只允许修改第2行中对 _DEF_ 的宏定义,不能改动其它行的代码。 1: #include <stdio.h> 2: #define _DEF_ 0 3: 4: int main(int argc, char* argv[]) { 5: if(_DEF_) { 6: printf(&qu 阅读全文
posted @ 2012-11-25 21:49 bitbyte 阅读(296) 评论(0) 推荐(0) 编辑