C++编程
文章平均质量分 91
川大的小卡车哐哐哐
这个作者很懒,什么都没留下…
展开
-
【对比 Java 和 Go,探讨 C++ 的优劣之处】
本文将对比 C++、Java 和 Go 三种编程语言,分析它们的优劣之处,并探讨 C++ 在实际生产中的应用。首先,我们将介绍 C++ 的生态环境和第三方库、框架支持的问题。接着,我们将分析 C++ 的优点,如卓越的性能和可控性,以及缺点,如复杂的语法和内存安全问题。随后,我们将对比 C++、Java 和 Go 在内存管理、并发编程、编程效率等方面的优劣之处,并使用示例代码来佐证观点。最后,我们将总结 C++ 在实际生产中的应用和局限性,并提供一些建议和思考。原创 2023-02-27 15:16:36 · 796 阅读 · 0 评论 -
【 C++ 20 相比 C++ 11 的所有区别的详细介绍】
这是一篇关于 C++ 20 相比 C++ 11 的所有区别的详细介绍。C++ 20 是 C++ 语言的最新版本,其中包含了许多新的特性和改进,这些特性可以帮助 C++ 开发者编写更简洁、更安全、更高效的代码。原创 2023-02-27 14:35:17 · 2438 阅读 · 0 评论 -
C++的左值与右值
参考自:https://blog.csdn.net/xuwqiang1994/article/details/79924310左值与右值的概念在很多地方比较模糊,但其对我们对C++的理解很重要。比如我们看github上的源码的时候会看到std::move等用法,在查找其含义之后得知它功能是将左值转成右值引用,若是我们不理解左值与右值,还是无法知道它到底有什么用。我们还会经常在编译错误和...原创 2019-11-24 01:03:47 · 194 阅读 · 0 评论 -
C语言计算函数执行时间差
#include “stdio.h”#include “time.h” int main( void ){ clock_t start, end; double use_seconds; start = clock(); unsigned int i = 0xffffffff; while( i-- ); end = clock(); use_...原创 2019-09-05 17:26:58 · 993 阅读 · 0 评论 -
inline 内联函数导致出现“无法解析的外部符号”问题原因
现象:我用VS2017编程,将类中的一些函数的实现写在了头文件里,运行成功后为优化代码阅读体验,想将函数定义放到对应的源文件中。右键点击函数名试了一下VS2017的功能,果然有“转移声明/定义位置”的选项,点击后自动将定义转移到了源文件内了。但是发现编译通不过了,报了熟悉且头疼的“无法解析的外部符号”错误。检查后发现自动转移的定义处,自动加上了 inline,我把inline删掉后就能编译通过...原创 2019-08-28 11:23:34 · 2519 阅读 · 2 评论 -
C 语言 define format与变参args 、 __VA_ARGS__使用
原文出处:《C 语言 define 变参__VA_ARGS__使用》在C语言的标准库中,printf、scanf、sscanf、sprintf、sscanf这些标准库的输入输出函数,参数都是可变的。在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用可变参数的宏是一个不错的选择。在C99中规定宏也可以像函数一样带可变的参数,如:#define LOG...转载 2019-08-16 19:11:54 · 2182 阅读 · 0 评论 -
使用timerfd、inotify与epoll实现的高性能文件定时删除工具(日志文件清理工具)
在实际场景中,我们往往需要定期清理日志文件。最近我在调试过程中,需要打印的日志比较多,甚至导致每调试完几次就要动手清理一次日志文件,这让人很不爽。于是上网搜有没有相关工具可以辅助我清理日志文件,然而找到的都是要币的,而我没有... ...于是只好自己动手写了个日志文件清理工具了。本工具使用inotify监控指定路径,用timerfd进行延时,使用用epoll驱动事件,没有任何主动轮询操作,...原创 2019-07-05 14:16:56 · 392 阅读 · 0 评论 -
epoll_data 结构体问题
学习epoll使用的过程中,了解到epoll_data中有一个指针ptr可供自定义使用,结构定义如下:typedef union epoll_data{ void *ptr; int fd; uint32_t u32; uint64_t u64;} epoll_data_t;epoll_event结构体定义如下:struct epoll_event{ u...原创 2019-07-04 17:28:57 · 830 阅读 · 0 评论 -
Linux下cout 不加endl不会立即输出的情况
今天做socket测试偶尔发现了这个情况,客户端发送了一段字符串过来,服务器输出在屏幕上。cout<< "buffer: " << buffer;现象:1.客户端发送的返回值正常,服务器读取的返回值也正常,但就是不输出,在客户端再次发送后,服务器会显示接收到的上一条消息的内容。2.客户端发送的字符串末尾加上换行符 '\n',服务器能输出字符串3.客户端...原创 2019-07-08 11:22:47 · 1702 阅读 · 0 评论 -
C++编程--原子变量
应用场景:多线程下的计数等等。对原子变量的操作是原子操作,能保证在任何情况下都不被打断,是线程安全的,不需要加锁。在新标准C++11,引入了原子操作的概念,并通过这个新的头文件提供了多种原子操作数据类型,例如,atomic_bool,atomic_int等等,如果我们在多个线程中对这些类型的共享资源进行操作,编译器将保证这些操作都是原子性的,也就是说,确保任意时刻只有一个线程对这个资源进行...原创 2019-06-06 17:38:18 · 9016 阅读 · 0 评论