Функция swap () в книге Essential C не компилируется - PullRequest
0 голосов
/ 10 января 2019

wtf.c: 11: 6: ошибка: ожидаемые спецификаторы объявления или '...' перед '&' токеном Swap (& a, & b);

wtf.c: 11: 10: ошибка: ожидаемые спецификаторы объявления или '...' перед '&' токеном Swap (& 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);

Я ожидал, что он скомпилирует хотя бы точный пример из книги, но, по-видимому, даже это невозможно.

1 Ответ

0 голосов
/ 10 января 2019
#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 works


У вас были ошибки компилятора из-за формы Swap(&a, &b);, которая не является ни объявлением, ни определением (это вызов функции)

Как отмечается в примечании, точкой входа любой C-программы является функция main , автоматически вызываемая для более подробного ознакомления с документацией о C

...