A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sen 中级黑马   /  2014-4-12 22:40  /  1020 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sen 于 2014-5-20 11:59 编辑

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

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

20140412_1853422.jpg

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1 每个语句后面都要加个分号的

查看全部评分

2 个回复

倒序浏览
本帖最后由 程序猿-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;
}


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 董月峰 于 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;
}


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马