C能否对外部函数进行重命名,C++ 能否对一个外部函数进行重命名

2021-01-12 08:30:08 字数 1591 阅读 6932

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)