0

wtf.c:11:6:错误:预期的声明说明符或 '...' 在 '&' 标记交换(&a,&b)之前;

wtf.c:11:10:错误:预期的声明说明符或 '...' 在 '&' 标记交换(&a,&b)之前;

不想求助于 StackOverflow 来解决我的个人问题,但我无法弄清楚。代码与书中的完全相同。我也尝试过制作单独的指针并将它们用作参数,但我得到了同样的错误。有人可以阐明我做错了什么吗?我正在使用 gcc 来编译代码。

static void Swap(int *x, int *y){
  int temp;
  temp = *x;
  *x = *y;
  *y = temp;
}

int a = 1;
int b = 2;

Swap(&a, &b);

我希望它至少可以编译书中的确切示例,但显然这甚至是不可能的。

4

1 回答 1

2
#include <stdio.h>

static void Swap(int *x, int *y){
  int temp;
  temp = *x;
  *x = *y;
  *y = temp;
}

int main()
{
  int a = 1;
  int b = 2;

  Swap(&a, &b);
  printf("%d %d\n", a, b);
  return 0;
}

编译和执行打印“2 1”,你可以看到交换工作


由于形式Swap(&a, &b);既不是声明也不是定义(它是函数调用),您遇到了编译器错误

正如评论中所说,任何 C 程序的入口点都是函数main,自动调用,以获取更多关于 C 的阅读文档

于 2019-01-10T20:05:04.500 回答