首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[[低级1(进程2710)与代码06]]奇怪的输出

[[低级1(进程2710)与代码06]]奇怪的输出
EN

Stack Overflow用户
提问于 2014-01-14 06:17:52
回答 1查看 8.1K关注 0票数 1

我试图测量一个C程序的输出,所以我运行调试器。

这是程序-:

代码语言:javascript
复制
#define swap(a, b) temp=a; a=b; b=temp;
#include <stdio.h>

main()
{
        int i, j, temp;
    i = 5;
    j = 10;
    temp = 0;
    if(i > j)
        swap(i, j);
    printf("%d %d %d",  i, j, temp);
}

该程序的输出10 0 0。我不知道怎么可能。

我在GDB的第6、7、8、9、10行插入了断点。这就是我得到的-:

代码语言:javascript
复制
(gdb) run
Starting program: /home/pritishc/Documents/a.out 

Breakpoint 1, main () at ProbleminC.c:7

7   i = 5;

(gdb) print i

$1 = 0

(gdb) print j

$2 = 0

(gdb) continue

Continuing.

Breakpoint 3, main () at ProbleminC.c:8

8   j = 10;

(gdb) print i

$3 = 5

(gdb) print j

$4 = 0

(gdb) print temp

$5 = 32767

(gdb) continue

Continuing.

Breakpoint 4, main () at ProbleminC.c:9

9   temp = 0;

(gdb) print i

$6 = 5

(gdb) print j

$7 = 10

(gdb) print temp

$8 = 32767

(gdb) c

Continuing.

Breakpoint 5, main () at ProbleminC.c:10

10  if(i > j)

(gdb) print i

$9 = 5

(gdb) print j

$10 = 10

(gdb) print temp

$11 = 0

(gdb) c

Continuing.

10 0 0[Inferior 1 (process 2710) exited with code 06]

(gdb) print i

No symbol "i" in current context.

(gdb)

这到底是什么意思?为什么它会给我这样的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-14 06:20:56

定义宏的方法是:

代码语言:javascript
复制
#define swap(a, b) temp=a; a=b; b=temp;

预处理器将将您的if条件转换为:

代码语言:javascript
复制
if(i > j)
    temp=i;
i=j;
j=temp;

将宏更改为:

代码语言:javascript
复制
#define swap(a, b) { temp=a; a=b; b=temp; }

或者甚至可以使用do ... while循环:

代码语言:javascript
复制
#define swap(a, b) do { temp=a; a=b; b=temp; } while (0)

所观察到的6的退出代码是printf的返回值。引用man 3 printf

代码语言:javascript
复制
   Upon successful return, these functions return the number of characters
   printed (excluding the null byte used to end output to strings).

在您的main() (宁愿使它成为int main())中,添加

代码语言:javascript
复制
return 0;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21107164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档