Essential C 书中的 Swap() func 无法编译
Swap() func in the book Essential C does not compile
wtf.c:11:6: 错误:预期的声明说明符或“...”在“&”标记之前
交换(&a, &b);
wtf.c:11:10: 错误:预期的声明说明符或“&”标记前的“...”
交换(&a, &b);
不想求助于 Whosebug 来解决我的个人问题,但我无法弄清楚。代码和书上的完全一样。我也试过制作分离的指针并将它们用作参数,但我得到了同样的错误。有人可以阐明我做错了什么吗?我正在使用 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);
我希望它至少能编译出书中的确切示例,但显然这不可能。
#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有效
由于 Swap(&a, &b);
不是声明也不是定义(它是函数调用)的形式,您遇到了编译器错误
正如评论中所说,任何 C 程序的入口点都是函数 main,它会自动调用,有关 C
的更多信息请阅读文档
wtf.c:11:6: 错误:预期的声明说明符或“...”在“&”标记之前 交换(&a, &b);
wtf.c:11:10: 错误:预期的声明说明符或“&”标记前的“...” 交换(&a, &b);
不想求助于 Whosebug 来解决我的个人问题,但我无法弄清楚。代码和书上的完全一样。我也试过制作分离的指针并将它们用作参数,但我得到了同样的错误。有人可以阐明我做错了什么吗?我正在使用 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);
我希望它至少能编译出书中的确切示例,但显然这不可能。
#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有效
由于 Swap(&a, &b);
不是声明也不是定义(它是函数调用)的形式,您遇到了编译器错误
正如评论中所说,任何 C 程序的入口点都是函数 main,它会自动调用,有关 C
的更多信息请阅读文档