C编程,[错误]调用对象 'swap'不是函数或函数指针

标签 c pointers

我需要做一个程序,使用指针从最低到最高,然后从最高到最低列出三个年龄。每当我尝试编译时,编译器都会不断给出错误“[Error] called object 'swap' is not a function or function pointer”。我不是在我声明它的函数之前正确声明了它吗?我在“swap (*p1, *p2, *p3);”时遇到问题

我猜我只是不知道如何跨函数传递指针。

#include <stdio.h>
#define MAX 70
#define MIN 0

void swap (int*p1, int*p2, int*p3)
{
   int temp;

   *p1 == temp;
   *p1 == *p2;
   *p2 == temp;

   printf ("%d %d %d", *p2, *p3, *p1);
}

void leasttogreatest (age1, age2, age3)
{
   int *p1,*p2,*p3;
   int swap;

   if (age1 < age2 && age2 < age3)
   {
      printf ("%d %d %d\n", age1, age2, age3);
      *p1 == age1;
      *p2 == age3;
      *p3 == age2;
   }
   else if (age1<age3 && age3<age2)
   {  
      printf ("%d %d %d\n", age1, age3, age2);
      *p1 == age1;
      *p2 == age2;
      *p3 == age3;
   }
   else if (age2<age1 && age1<age3)
   {
      printf ("%d %d %d\n", age2, age1, age3);
      *p1 == age2;
      *p2 == age3;
      *p3 == age1;
   }
   else if (age2<age3 && age3<age1)
   {
      printf ("%d %d %d\n", age2, age3, age1);
      *p1 == age2;
      *p2 == age1;
      *p3 == age3;
   }
   else if (age3<age1 && age1<age2)
   {
      printf ("%d %d %d\n", age3, age1, age2);
      *p1 == age3;
      *p2 == age2;
      *p3 == age1;
   }
   else if (age3<age2 && age2<age1)
   {
      printf ("%d %d %d\n", age3, age2, age1);
      *p1 == age3;
      *p2 == age1;
      *p3 == age2;
   }
   swap (*p1, *p2, *p3);
}

int main (void)
{
   int age1, age2, age3;
   char choice;

   do
   {
      do
      {
         printf ("Enter 3 Student ages to sort (0-70): ");
         scanf ("%d %d %d", &age1, &age2, &age3);
         getchar ();
         if (age1<MIN||age2<MIN||age3<MIN||age1>MAX||age2>MAX||age3>MAX)
            printf ("ERR:  Student ages out of range(0-70)!\n\n");
      } while (age1<MIN||age2<MIN||age3<MIN||age1>MAX||age2>MAX||age3>MAX);

      leasttogreatest (age1, age2, age3);


      printf ("Want to sort more Student ages? ");
      scanf ("%c", &choice);
      getchar ();

   }while (choice != 'n');
   return 0;
}

最佳答案

在函数 leasttogreatest 中,您也创建了一个名为“swap”的整数。这是无效的。

关于C编程,[错误]调用对象 'swap'不是函数或函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31497911/

相关文章:

C Undeclared(第一次在这个函数中使用)

Char 指针值在循环中发生变化,但之后不会发生变化

c++ - 如何验证删除的指针?

c++ - OpenCV 卡尔曼滤波器

c - 这个 printf 是什么意思?

c - 为什么组长无法在 Linux 中创建 session

c - 文件输入输出,用C读取多个文件

c - 分配节点(反向链表)

c - 为什么我的 ANSI C 函数不保留它设置的参数值?

c++ - dladdr : pointer-to-function vs pointer-to-object