#include<stdio.h>
int main ()
{
int max (int a,int b);
int min (int a,int b);
int sum (int a,int b);
void process (int (*z)(int,int));
int i,j;
printf("請輸入兩個數字:\n");
scanf("%d %d",&i,&j);
process (max);
process (min );
process (sum);
}
int max (int a,int b)
{
int z;
if (a>b) z = a;
if (a<b) z = b;
return z;
}
int min (int a,int b)
{
int z;
if (a>b) z = b;
if (a<b) z = a;
return z;
}
int sum (int a,int b)
{
int z;
z = a+b;
return z;
}
結果錯了
C:\Users\HP\AppData\Local\Temp\ccUoQFg0.o 指向函式的指標.cpp:(.text+0x3b): undefined reference to `process(int (*)(int, int))'
C:\Users\HP\Desktop\c語言\collect2.exe [Error] ld returned 1 exit status
uj5u.com熱心網友回復:
process函式沒有函式體,也沒定義對,引數沒傳進入void process (int (*z)(int, int)); 改成 void process (int (*z)(int, int), int, int);
追加一個函式
void process (int (*z)(int, int), int a, int b) {
z(a, b);
}
然后process呼叫的地方都修改
比如 process(main) 改成 process(max, a, b);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191259.html
標籤:新手樂園
