![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++11
、、、、南山小雨、、、、
秋风吹湘水,落叶满南山.
展开
-
c++20的协程
在C++20中,添加了协程语言特性,并提供了一组关键字和相应的库支持,使得开发者可以利用协程来构建高效、简洁且易于理解的异步和事件驱动程序。协程是一种轻量级线程,可以在执行过程中暂停,保存当前状态,然后再次从之前停止的地方继续执行。总体而言,协程是一种能够让开发者像编写同步代码一样编写异步代码的技术,避免了繁琐的回调函数和线程锁等问题。这使得程序更具可读性、可维护性和可扩展性。在C++中,协程(Coroutines)通常指一种编程模型,提供了一种协作式的多任务并发实现方式,可以简单理解为“协同程序”。原创 2023-05-09 08:58:19 · 579 阅读 · 0 评论 -
C++智能指针
u_cat->cat_infor(),因为独占权已经不存在u_cat中了,其实make_unique()也是一种move。//为了防止通过cat改动,将其置空,更好的体现独占。weak_ptr,shared_ptr的补充,很少用。3.通过sdt::make_unique创建(推荐)unique_ptr可以通过get()获取地址。unique_ptr独占指针,用的最多。shared_ptr记数指针,其次。原创 2023-02-12 22:50:05 · 892 阅读 · 3 评论 -
在c++中nullptr与NULL什么区别
nullptr 是 C++11 标准新增的特性,是一种特殊的空指针常量,它可以避免与整型宏 NULL 混淆。为了更好的兼容性,可以在代码中使用 nullptr 代替 NULL,这样能更好的维护程序的安全性。nullptr 可以在模板中和重载函数中使用,而 NULL 不能,因为它不是一个真正的类型。nullptr 和 NULL 都是在 C++ 中用来表示空指针的值。NULL 通常是定义为 0 或 (void*)0 的宏,有可能被视作整型,而非指针类型。原创 2023-01-11 16:33:57 · 741 阅读 · 0 评论 -
error: expected unqualified-id before ‘switch’
原因是跟标准库中的函数名相同了,因此改一个名字即可。原创 2022-10-27 16:17:46 · 955 阅读 · 0 评论 -
__cplusplus介绍
伪代码如下:#ifdef __cplusplusextern "C" {#endif#include <....h>#ifdef __cplusplus}#endif如果在C的编译环境中,代码就变成了:#include <....h>如果在C++环境中,代码就变成了:extern "C" {#include <....h>}这个__cplusplus在编译器中被定义,不同的C++版本有不同的值。C++03:__cplusplus =原创 2022-03-02 10:23:37 · 1669 阅读 · 0 评论 -
printf打印long long类型数据
用微妙做单位的话,时间戳是16位数字,应该用64位整形存储,long long。如果用printf打印的话,%d默认是int类型,打印long long int格式是%lld。打印long int格式是%ld。原创 2021-12-04 16:24:48 · 14472 阅读 · 2 评论 -
sizeof数组名与指针
int a[5] = {0,1,2,3,4};int* p = a;printf("sizeof(a)= %d\n", sizeof(a));printf("sizeof(p)= %d\n", sizeof(p));在64位系统,打印如下sizeof(a)= 20sizeof§= 8a为什么能代表数组首地址呢,从汇编上看,它其实是段地址,而索引a[0],a[1]等其实是段地址+偏移量对于p来说只是一个指针,并非段地址性质,指针也是一种变量的类型,在64位系统下占8个字节。因此a和p性原创 2021-11-27 14:15:15 · 118 阅读 · 0 评论 -
C++ while(num-- >0)
int num = 1024;while (num-- > 0){ printf("Hello World!\n");}以上代码循环打印 Hello World! 1024次,每次num自动减少1,直到为0停止。原创 2021-11-26 08:46:41 · 944 阅读 · 0 评论