回调函数:学习笔记
  9aGNI37h2JhV 2023年12月15日 18 0
#include<iostream>
using namespace std;
//array:元素首地址,elementSize:元素大小,len:元素个数,回调函数.
void PrintAny(void* array, int elementSize, int len, void(myPrint)(void data))
{
char* any = (char*)array;
for (int i = 0; i < len; i++)
{   //获取数组中每个元素的首地址
char* addr =(char*)( any + elementSize * i);
//交给用户打印
myPrint(addr);
}
}
//==========================================================
void myPrintInt(void* data)
{
int* tempdata = (int*)data;
cout << tempdata << endl;
}
void testOne()
{
int a[5] = { 1,2,3,4,5 };
PrintAny(a, sizeof(int), 5, myPrintInt);
}
//===========================================================
typedef struct PERSON
{
char name[64];
int age;
int score;
}Person;
void myPrintPerson(void data)
{
Person* p = (Person*)data;
cout << p->name << ":" << p->age << "-" << p->score << endl;
}
void testTwo()
{
Person p[] = { {"Liang",18,66}, { "Ben",19,76 }, { "Joh",20,86 } };
PrintAny(p, sizeof(Person), sizeof(p) / sizeof(Person), myPrintPerson);}
//=============================================================
int main()
{
testOne();
testTwo();
return 0;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月15日 0

暂无评论

推荐阅读
9aGNI37h2JhV