Функция swap() в книге Essential C не компилируется
wtf.c:11:6: ошибка: ожидаемые спецификаторы объявления или '...' перед '&' замена токена (&a, &b);
wtf.c: 11: 10: ошибка: ожидаемые спецификаторы объявления или '...' перед '&' замена токена (&a, &b);
Не хотел прибегать к Stackru для моей личной проблемы, но я не могу понять это. Код точно такой же, как и в книге. Я также попытался сделать отдельные указатели и использовать их в качестве аргументов, но я получаю ту же ошибку. Может кто-то пролить свет на то, что я делаю не так? Я использую 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);
Я ожидал, что это скомпилирует хотя бы точный пример из книги, но, видимо, даже это невозможно.
1 ответ
#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