首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数指针和函数参数的有关问题

2013-02-02 
函数指针和函数参数的问题typedef void (*转换)(int,int)void func1(int p){printf(%d\n,p)}void run(

函数指针和函数参数的问题



typedef void (*转换)(int,int);
void func1(int p)
{
printf("%d\n",p);
}
void run(  void (*f)(int,int) )
{
f(3,5);
}
int  main(int argc,char **argv)

run(  (转换)func1 );
return 0;
}




回调func1的时候参数丢了个5这个参数,会不会导致问题,安全否,
void func1(int p)和void run(  void (*f)(int,int) )
不变的情况下,怎么改比较安全
[解决办法]
的确没有见过这种有中文字符还能编译通过,我改成英文名字后的确可以编译通过,并输出3.

这种转换应该是安全的吧,我之前也没遇到过这种转换的。
[解决办法]
http://bbs.csdn.net/topics/390338774
[解决办法]
这样写没问题的吧、类型一下代码:
 int show(int a,int b)
{
}

int show(int a);  //并不实现,他会是以上函数的另一种调用方式

使用的时候可以随便传入几个参数啊:以上是C语言的实现此功能的方式

在C++ 中可以直接 int show(int a = 0,int b = 0)
{

}//这样调用的时候随便传参数(0,1,2)都可以的!

[解决办法]
引用:
引用:看一下汇编,这样调用没问题。

我是怕参数进栈了而函数没调用这个参数,就没出栈,会导致没释放这个参数的内存。

明显你想多了。

热点排行
Bad Request.