首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C中,当作为参数传递时,`&function`和`function`有什么区别?

在C中,当作为参数传递时,`&function`和`function`有什么区别?
EN

Stack Overflow用户
提问于 2011-06-09 21:19:25
回答 4查看 4.8K关注 0票数 21

例如:

代码语言:javascript
复制
#include <stdio.h>

typedef void (* proto_1)();
typedef void proto_2();

void my_function(int j){
    printf("hello from function. I got %d.\n",j);
}

void call_arg_1(proto_1 arg){
    arg(5);
}
void call_arg_2(proto_2 arg){
    arg(5);
}
void main(){
    call_arg_1(&my_function);
    call_arg_1(my_function);
    call_arg_2(&my_function);
    call_arg_2(my_function);
}

运行此命令,我会得到以下结果:

代码语言:javascript
复制
> tcc -run try.c
hello from function. I got 5.
hello from function. I got 5.
hello from function. I got 5.
hello from function. I got 5.

我的两个问题是:

  • 使用(* proto)定义的函数原型和没有定义的函数原型有什么区别?
  • 使用引用运算符(&)调用函数和不使用引用运算符调用函数有什么区别?
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6293403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档