鱼C论坛

 找回密码
 立即注册
查看: 3938|回复: 6

指针指向函数调用!

[复制链接]
发表于 2011-12-18 00:41:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
int max(int ,int );
int min(int ,int );
int add(int ,int );
void process(int x ,int y,int(*fun)( ) );
int a,b;
printf("endter a and b: ");
scanf("%d %d",&a,&b);

printf("max= ");
process(a,b,max);

printf("min= ");
process(a,b,min);

printf("add= ");
process(a,b,add);
}
int max(int x,int y)
{
int max;
if(x>y)
{
  max=x;
}
else
{
  max=y;
}
return max;
}
int min(int x,int y)
{
int min;
if(x<y);
{
  min=x;
}
else
{
  min=y;
}
return min;
}
int add(int x,int y)
{
int add;
add=x+y;
return add;
}

我到底哪里错了?



                               
登录/注册后可看大图
该贴已经同步到 空手套小白狼的微博
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-18 01:22:37 | 显示全部楼层
函数体内能声明和定义函数么?

函数是相互独立的,main也是个函数,函数可以嵌套调用,但是不能嵌套声明,把main里边的函数全部提出去就行了,不管是定义还是声明都弄到main前面去,放在#include下面

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-18 11:59:08 | 显示全部楼层
川本姨夫 发表于 2011-12-18 01:22
函数体内能声明和定义函数么?

函数是相互独立的,main也是个函数,函数可以嵌套调用,但是不能嵌套声明 ...

还是不行你看把!#include<stdio.h>
int max(int ,int);
        int min(int ,int);
        int add(int ,int);
        int process(int x ,int y,int(*fun)() );
void main()
{

       
        int a,b;
        printf("endter a and b: ");
        scanf("%d %d",&a,&b);

        printf("max= ");
        process(a,b,max);

        printf("min= ");
        process(a,b,min);

        printf("add= ");
        process(a,b,add);
}
int max(int x,int y)
{
        int max;
        if(x>y)
        {
                max=x;
        }
        else
        {
                max=y;
        }
        return max;
}
int min(int x,int y)
{
        int min;
        if(x<y)
        {
                min=x;
        }
        else
        {
                min=y;
        }
        return min;
}
int add(int x,int y)
{
        int add;
        add=x+y;
        return add;
}
下面错误:1>------ 已启动生成: 项目: 2010, 配置: Debug Win32 ------
1>生成启动时间为 2011/12/18 12:00:42。
1>InitializeBuildStatus:
1>  正在对“Debug\2010.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  2010.c
1>c:\users\administrator\documents\visual studio 2010\projects\2010\2010\2010.c(12): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见“scanf”的声明
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>2010.obj : error LNK2019: 无法解析的外部符号 _process,该符号在函数 _main 中被引用
1>C:\Users\Administrator\Documents\Visual Studio 2010\Projects\2010\Debug\2010.exe : fatal error LNK1120: 1 个无法解析的外部命令


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-18 14:43:45 | 显示全部楼层
空手套小白狼 发表于 2011-12-18 11:59
还是不行你看把!#include
int max(int ,int);
        int min(int ,int);

process只有声明没有函数体啊?具体的函数过程在哪呢
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-18 15:21:43 | 显示全部楼层
我弄出来了!:D
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-11 13:58:25 | 显示全部楼层
空手套小白狼 发表于 2011-12-18 15:21
我弄出来了!

能给我看下代码吗?我这里也弄不出来
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-10 01:14:09 | 显示全部楼层
空手套小白狼 发表于 2011-12-18 15:21
我弄出来了!

楼主那个process的函数体怎么样的?
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-10 05:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表