1楼:廖增祥
两种方法:
1 使用宏定义,如:
#ifndefran
#defineran__mlcd_ran#endif
2 添加一个头文件,声明一个函数指针,并在 .cpp 中定义,并在主函数中初始化,如:
//type.h
//假设__mlcd_ran的函数原型为:void__mlcd_ran(int);
externvoid(*ran)(int);
//main.cpp
void(*ran)(int);//定义全局变量intmain()
//然后在任何需要调用的.cpp文件中包含此头文件,如:
#include"type.h"
ran(100);//有的编译器编译不过*ran(100);
综上所述,用宏定义比较好,win32 api 里面有大量的宏定义,比如宽字节函数与多字节函数为了统一。
c++中一个函数作为作为另一个函数的参数该如何解释
2楼:匿名用户
一个函数(actionfun)作为另一个函数的参数(mainfun),实际上是在运行主函数mainfun的时候,得到的一些数值传入到actionfun函数中,actionfun为主函数做一些设置也可以执行一些其他的功能,但都要从主函数mainfun中得到参数。 举例如下:
在.h中声明一个类型 和actionfun参数等一样typedef int (*fun)(int tpart);
在.cpp中
int actionfun(int tpart)void mainfun(tag_t p_tag,fun actionfun)
大体就是这样使用的。
3楼:go陌小洁
把函数名作为参数就是函数的地址了.
如下面的例子
#include
using namespace std;
typedef int (*pfun)(int a, int b);//函数指针
int add(int a, int b)void fun(int a, int b, pfun pfun) //函数指针作为函数的参数
4楼:匿名用户
把函数名作为参数就是函数的地址了.
比如_beginthread()
这个函数,
void thread()
{}_beginthread( thread, 0, 0)就是启动thread作为一个线程.
5楼:匿名用户
应该是把某个函数的最终返回值作为另一个函数的参数。就是在调用的时候先去计算某函数的值,之后再把它作为调用它的函数的参数并带入此函数的计算。
6楼:匿名用户
typedef void (*p) (void);
void invoke(p);//p is a pointer to a fuction
void output();
void output()
void invoke(output)