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

时间:2014-06-08 15:02:47

标签: 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("\nEnter J = ");
  scanf("%d",&j);

  swap(&i, &j);

  printf("\n I = %d",i);
  printf("\n J = %d",j);
}

当我在一个文件中编写此程序时,程序已正确执行。现在,我将其分为两部分,Practice.c具有main()函数,swap.c包含swap(int *i, int *j)函数,但它并没有那么顺利。 以下是我用于执行程序的以下过程。

gcc -c swap.c
gcc Practice.c swap.o -oPractice

一旦我尝试执行第二个语句,它就不会编译并产生错误。

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

  1. Practice.c {main()function}
  2. Add.c {add()function}
  3. Add.h {header file}
  4. 它没有指针。

    请告诉我我犯了哪个错误。

1 个答案:

答案 0 :(得分:5)

swap.h更改

swap(int, int);

swap(int *, int *);

您的swap函数将整数指针作为参数,但您的声明表示采用整数。所以编译器会给你错误。