社区
C语言
帖子详情
请教如何根据地址调用函数
jzgunking
2005-11-02 08:11:33
void print()
{
cout << "OK" <<endl;
}
void (*DRV)();
void main()
{
int a = 0;
a = *(int const *)print;
下面如何根据a来调用print()函数?
...全文
292
5
打赏
收藏
请教如何根据地址调用函数
void print() { cout << "OK" <<endl; } void (*DRV)(); void main() { int a = 0; a = *(int const *)print; 下面如何根据a来调用print()函数?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jzgunking
2005-11-02
打赏
举报
回复
谢谢我就是想要这个
wanguodu
2005-11-02
打赏
举报
回复
你是不是要这个?
int a = 0;
a = (int)print;
DRV = (void (*)()) (a);
(*DRV)();
jzgunking
2005-11-02
打赏
举报
回复
也就是print()把地址穿给a,DRV()再根据a中的print()的地址来达到
DRV = print的效果
jzgunking
2005-11-02
打赏
举报
回复
我希望能通过a来向初始化DRV()
codearts
2005-11-02
打赏
举报
回复
没看明白
是:
DRV = print;
DRV();
这种方式吗?
C++容器的swap()函数的三点说明
写在前面: 1、使用范围for遍历容器的每个元素,需要使用auto& it引用元素的同一块内存空间,不要使用auto it因为范围for的原型就是容器迭代器遍历元素,将迭代器所致的元素值然后拷贝给it,所以it又是栈上的一块内存空间了。建议使用引用类型,若不需要修改则写成const auto &it,需要修改写出auto &it。 2、关于array的swap的两个数组的...
c++容器中swap函数用法
转载自:https://blog.csdn.net/yang20141109/article/details/50759461 swap操作交换两个相同类型容器中的内容,调用swap函数后,两个容器中的元素将会交换,容器中的元素交换以后会对容器的迭代器、引用、和指针有什么影响。 第一种情况:如果容器是vector,list等容器,交换两个容器的内容的操作保证会很快,因为元素本身并不交换...
C++中的array容器
c++ 11中提供了数组类Array(容器)该Array的引入引入为C风格的数组提供了更好的选择。array类相对于c类数组有以下的优点: 1. 数组类(Array class)知道自己的大小,而c风格的数组缺乏此属性。所以当传递给函数时,我们不需要把数组的大小作为单独的参数传递。 2. 使用c风格的数组,数组退化为指针的风险更大;而数组类不会衰退为指针。 3. Array通常比c风格的数组更有效...
C++ array容器用法详解
除此之外,C++ 11 标准库还新增加了 begin() 和 end() 这 2 个函数,和 array 容器包含的 begin() 和 end() 成员函数不同的是,标准库提供的这 2 个函数的操作对象,既可以是容器,还可以是普通数组。当操作对象是容器时,它和容器包含的 begin() 和 end() 成员函数的功能完全相同;和其它容器不同,array 容器的大小是固定的,无法动态的扩展或收缩,这也就意味着,在使用该容器的过程无法借由增加或移除元素而改变其大小,它只允许访问或者替换存储的元素。
C++中容器的swap以及对string进行swap迭代器失效的现象
写在前面: 1、使用范围for遍历容器的每个元素,需要使用auto& it引用元素的同一块内存空间,不要使用auto it因为范围for的原型就是容器的迭代器遍历元素,将迭代器所指向的元素值然后拷贝给it,所以it又是栈上的一块内存空间了。建议使用引用类型,若不需要修改则写成const auto &it,需要修改写出auto &it。 2、关于array的swap的两个数...
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章