今日报错系列:void * 类型的函数形参,该如何使用
2021-01-14 09:11
369 查看
今日在搞一个问题时,用到了void * 类型,在此记录一下
问题大致描述:以void * 类型为参数的函数应该怎么使用
void Problem(void* user_data);
以下以传共享指针为例:代码很简单,耐心看完。
注意两点:下面代码的两个长注释
#include <iostream> using namespace std; class StopMyDate { public: string aaa; string bbb; string ccc; }; void sss(void* user_data) { // 注意该处:类似于 *((int*)user_data) /***************注意1*************/ auto m_user_data = *((shared_ptr<StopMyDate>*)user_data); string aa = m_user_data->aaa; cout << "m_user_data->aaa : " << aa.c_str() << endl; //测试是否正确 } int main() { shared_ptr<StopMyDate>stopMyDate(new StopMyDate); // 定义一个共享指针,类型stopMyDate // 给成员赋值 stopMyDate->aaa = "aaaaa"; stopMyDate->bbb = "bbbbb"; stopMyDate->ccc = "ccccc"; // 此处调用,需注意添加(void*) /***************注意2*************/ sss((void *)&stopMyDate); return 0; }
输出:
m_user_data->aaa : aaaaa
相关文章推荐
- 使用void指针给函数传递不同的数据类型
- 我给女朋友讲编程CSS系列(3) CSS如何设置字体的类型、大小、颜色,如何使用火狐浏览器的Firebug插件查看网页的字体
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- 如何理解函数形参为指针和引用类型的参数传递
- WebApi系列~实际项目中如何使用HttpClient向web api发异步Get和Post请求并且参数于具体实体类型
- 使用SVM分类如何选择核函数类型
- 【scala系列4】使用富包装器或隐含类类型为值类添加函数
- 使用@RequestMapping 定义处理器函数-支持的形参类型
- WebApi系列~实际项目中如何使用HttpClient向web api发异步Get和Post请求并且参数于具体实体类型
- [转帖]C#如何使用正则表达式来校验字段串输入的系列函数
- <STL初探>list节点为自定义类型,如何访问节点中变量和函数,如何使用list自带的排序
- ajax中,触发函数如何使用两个形参
- 对于返回void类型的asyc的异步方法,如何修改,能使用await
- 使用VS2012 MFC自定义消息时,处理函数不能返回void类型。
- C++Builder 2007系列1-如何使用TDD For C/C++
- [SQL SERVER]使用 STR()函数将数值转换为字符串类型, 并避免指数形式
- dataGridView_关于如何解决无法将类型“void”隐式转换为“System.Data.Datatabel”
- QA:请问TCHAR,CHAR,LPSTR,LPCSTR,char这几个数据类型有何不同,该如何使用?
- 如何使用Lua扩展C/C++应用系列3
- Visual C#2005——如何使用ToArray方法返回一个强类型数组