黑马程序员技术交流社区

标题: 为什么会有错误提示 [打印本页]

作者: sen    时间: 2014-4-12 22:40
标题: 为什么会有错误提示
本帖最后由 sen 于 2014-5-20 11:59 编辑

为什么会提示在int sum(int a,int b)后面加;?

20140412_1853422.jpg (171.16 KB, 下载次数: 11)

20140412_1853422.jpg

作者: 程序猿-2014    时间: 2014-4-13 01:30
本帖最后由 程序猿-2014 于 2014-4-13 01:32 编辑

虽然我不知道你这个代码全部怎么写的    但是这个明显的是函数嵌套的问题     你把  
int sun(int a,int b)
{
      return a+b;
}
写到main函数外边就好了
#import <Foundation/Foundation.h>

int sum(int a, int b)
{
    return a+b;
}
int main()
{
    typedef (*mysum)(int, int);

    mysum p = sum;
    return 0;
}



作者: 董月峰    时间: 2014-4-13 13:21
本帖最后由 董月峰 于 2014-4-13 14:35 编辑

#include <stdio.h>

// 最好把typedef写在外面
typedef int (*MySum)(int, int) ;
// sum函数别写在主函数里
int sum(int a, int b)
{
    return a + b;
}

int main()
{
    MySum p = sum;

    printf("%d\n",p(2, 5));
   
    return 0;
}

另外,楼主可以看一下block,block才是可以在程序运行过程中随时生成一个代码块来调用
#import <Foundation/Foundation.h>

int main()
{
    typedef int (^MySum)(int, int);

    MySum p = ^(int a, int b) {
        return a + b;
    };

    NSLog(@"%d", p(3, 7));

    return 0;
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2