常用的宏定义

int main() { printf("%s\n", __FILE__); // main.c printf("%d\n", __LINE__); // 14 printf("%s\n", __DATE__); // Feb 7 2022 printf("%s\n", __TIME__); // 01:59:37 return 0; } // func1.h #ifdef __cplusplus extern "C"{ #endif void func1(); #ifdef __cplusplus } #endif // main.h extern "C"{ include "func1.h" } extern "C"{ extern void func1(); } int main() { func1(); return 0; }

February 7, 2022 · 1 min · Rick Cui

char* 数组

void printArr(const char ** p, int len){ for(int i = 0; i < len; ++i){ cout << p[i] << endl; } } void sortSelect(const char ** p, int len){ for(int i = 0; i < len - 1; ++i){ int max = i; for(int j = i + 1; j < len; ++j){ if(p[j] > p[max]){ max = j; } } // 交换 if(i != max){ const char* tmp = p[i]; p[i] = p[max]; p[max] = tmp; } } } int main() { const char* arr[] = {"aa", "bb", "cc", "dd", "ee"}; int len = sizeof(arr) / sizeof(char*); cout << len << endl; printArr(arr, len); sortSelect(arr, len); cout << "----------------" << endl; printArr(arr, len); return 0; } 输出:...

February 3, 2022 · 1 min · Rick Cui

装饰器模式

装饰模式又叫包装模式,通过一种对客户端透明的方式来扩展对象功能,是继承关系的一种替代。 装饰模式可以动态给一个类增加功能

February 2, 2022 · 1 min · Rick Cui

观察者模式

观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者。

February 2, 2022 · 1 min · Rick Cui

命令模式

将一个请求封闭为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。 命令模式可以将请求者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求

February 2, 2022 · 1 min · Rick Cui