C 在单独的函数文件中使用指针

C 在单独的函数文件中使用指针,c,function,pointers,gcc,C,Function,Pointers,Gcc,指针的工作 // swap.h swap(int, int); // swap.c swap(int *i, int *j) { int k; k=*i; *i=*j; *j=k; } // Practice.c #include <stdio.h> #include "swap.h" main() { int i,j; printf("\nEnter I = "); scanf("%d",&i); printf("\nEn

指针的工作

// swap.h

swap(int, int);

// swap.c

swap(int *i, int *j)
{
  int k;
  k=*i;
  *i=*j;
  *j=k;
}

// Practice.c

#include <stdio.h>
#include "swap.h"

main()
{   
  int i,j;

  printf("\nEnter I = ");
  scanf("%d",&i);
  printf("\nEnter J = ");
  scanf("%d",&j);

  swap(&i, &j);

  printf("\n I = %d",i);
  printf("\n J = %d",j);
}
当我试图执行第二条语句时,它没有编译并产生错误

我使用了完全相同的过程来执行另一个程序,它有3个文件

  • Practice.c{main()函数}
  • Add.c{Add()函数}
  • Add.h{头文件}
  • 它没有指针


    请告诉我哪里出错。

    swap.h
    change中

    swap(int, int);
    


    您的
    swap
    函数使用整数指针作为参数,但您的声明要求使用整数。所以编译器会给你们错误。

    swap.h
    change中

    swap(int, int);
    


    您的
    swap
    函数使用整数指针作为参数,但您的声明要求使用整数。所以编译器会给你错误。

    这个问题的格式很糟糕,并且缺少信息(错误)。请重写并重新格式化它。它产生了什么错误?您的
    swap()
    原型错误;您声称需要
    int
    ,但实际上需要
    int*
    (对于这两个参数)。如果系统的
    int
    与指针的大小不同,这将是一个问题。请始终要求编译器警告您(
    -Wall-Wextra-pedantic
    ),并始终尊重编译器给您的警告。@MarcoA。已完成重新格式化。此问题的格式糟糕且缺少信息(错误)。请重写并重新格式化它。它产生了什么错误?您的
    swap()
    原型错误;您声称需要
    int
    ,但实际上需要
    int*
    (对于这两个参数)。如果系统的
    int
    与指针的大小不同,这将是一个问题。请始终要求编译器警告您(
    -Wall-Wextra-pedantic
    ),并始终尊重编译器给您的警告。@MarcoA。重新格式化完成。
    swap(int *, int *);