2021-10-08
回调函数的经典示例
示例代码:
如何插入一段漂亮的代码片
#include<stdio.h>
#include<string.h>
#include"bubbleSort.h"
int compare_int(const void * e1, const void * e2)
{
return *(int *)e1 - *(int *)e2;
}
int compare_int_r(const void * e1, const void * e2)
{
return *(int *)e2 - *(int *)e1 ;
}
int compare_str(const void * e1, const void *e2)
{
return strcmp(*(char **)e1, *(char **)e2);
}
void main()
{
int arrayInt[] = { 39, 33, 18, 64, 73, 30, 49, 51, 81 };
int numArray = sizeof(arrayInt) / sizeof(arrayInt[0]);
bubbleSort(arrayInt, numArray, sizeof(arrayInt[0]), compare_int);
for (int i = 0; i <numArray; i++)
{
printf("%d ", arrayInt[i]);
}
printf("\n");
bubbleSort(arrayInt, numArray, sizeof(arrayInt[0]), compare_int_r);
for (int i = 0; i <numArray; i++)
{
printf("%d ", arrayInt[i]);
}
printf("\n");
char * arrayStr[] = { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" };
numArray = sizeof(arrayStr) / sizeof(arrayStr[0]);
bubbleSort(arrayStr, numArray, sizeof(arrayStr[0]), compare_str);
for (int i = 0; i < numArray; i++)
{
printf("%s\n", arrayStr[i]);
}
}
分层设计原则:
1.硬件抽象层
2.虚拟层
3.应用层
隔离变化
好莱坞原则:不要调用我,让我调用你
当下层需要传递数据给上层时,则采用回调函数指针接口隔离变化。
通过倒置依赖的接口所有权,创建一个更灵活 更持久和更易修改的结构。