C/C++
mandagod
这个作者很懒,什么都没留下…
展开
-
客户端log日志系统
背景我们在开发过程中出现了个别bug,而我们往往很难定位到问题所在,这个不仅仅局限于移动端,只是移动端不容易定位问题。我们常见的实现方式可能是,1. 创建一个带队列的线程。2. 把要上报的数据抛入线程队列中。3. 数据过多本地写入文件。4. 线程异步开始上报。5. 上报完成后删除本地文件。但这个实现方案经常会有一些问题:1. 上层写入数据过快,写文件线程来不及写入文...转载 2020-03-11 12:04:26 · 2405 阅读 · 2 评论 -
C/C++跨平台的的预编译宏
我们在编译一些跨平台的程序的时候难免会遇到_WIN32 __linux__什么之类的SDK或者编译器环境预定义的宏。有很多,之前还分不清_WIN32 和WIN32的区别。不过这里还好有个列表,做个备忘。Please send updates/corrections topredef-contribute.AIXType Macro Description Id...转载 2019-04-09 11:49:27 · 363 阅读 · 0 评论 -
wstring转大小写
转小写transform(str.begin(),str.end(),str.begin(),tolower);transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);转大写transform(s.begin(), s.end(), s.begin(), toupper);transform(wstr.begin(), ws...转载 2019-03-26 09:44:02 · 2153 阅读 · 0 评论 -
Google Test使用教程
单元测试Google Test本质上就是一个单元测试的框架。首先得明白什么是单元测试,一般意义上来说,单元测试在函数在整个工程运行起来之前,对该函数进行测试,来判断当前函数能否达到预期的效果。我一直的理解是把这个单元测试当作是运行时检查来用,事实证明是不对的。翻译于此处使用Google Test想要使用Google Test,你需要将Google Test编译为一个库并将你的测...转载 2019-02-19 15:28:20 · 1224 阅读 · 0 评论 -
C++智能指针及其简单实现
本文将简要介绍智能指针shared_ptr和unique_ptr,并简单实现基于引用计数的智能指针。使用智能指针的缘由 1. 考虑下边的简单代码:1 int main()2 {3 int *ptr = new int(0);4 return 0;5 } 就如上边程序,我们有可能一不小心就忘了释放掉已不再使用的内存,从而导致资源泄漏(resoure leak,在这里也就...转载 2018-03-07 13:03:45 · 223 阅读 · 0 评论 -
C++11学习
C++11学习本章目的:当Android用ART虚拟机替代Dalvik的时候,为了表示和Dalvik彻底划清界限的决心,Google连ART虚拟机的实现代码都切换到了C++11。C+11的标准规范于2011年2月正式落稿,而此前10余年间,C++正式标准一直是c++98/03[①]。相比C++98/03,C++11有了非常多的变化,甚至一度让笔者大呼不认识C++了[②]。不过,作为转载 2017-08-12 23:37:25 · 672 阅读 · 0 评论 -
32位与64位下各类型长度对比
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。1. 32 位和 64 位C数据类型32和64位c语言内置数据类型,如下表所示:上表中第一行的大写字母和数字含义如下所示:I表示:int类型L表示:long类型转载 2017-06-22 11:12:40 · 9522 阅读 · 1 评论 -
64位linux c语言开发注意事项
一、64位系统的优势?既然要采用64位系统,首先要知道64位系统的优势所在。对于技术人员来说,完全没有必要去看那些厂家拿出的厚厚的说明书、或者某个研究机构抛出的一堆的数字,64位系统的优势总结起来很简单:内存大、速度快!1、内存大与32位系统相比,64位系统的地址空间大大增大,达到了18PB,18PB究竟是多大呢?说出来有点吓人:4G内存的40亿倍!这么大的空间,不要说内存转载 2017-06-29 10:32:39 · 897 阅读 · 0 评论 -
20 issues of porting C++ code to the 64-bit platform
From: https://www.viva64.com/en/a/0004/转载 2017-06-29 10:15:27 · 328 阅读 · 0 评论 -
64位平台C/C++开发注意事项
在http://www.viva64.com/en/l/上例出了28个在64位平台上使用C/C++开发的注意事项,对于进入64位时代的程序员应该去看看这28个事项,这些英文读物对于有C/C++功底的朋友读起来应该并不难,我估计大约20-30分钟可以精读完一篇(或者更快),下面是这28个注意事项的列表。相信对大家一点有帮助。Lesson 01. What 64-bit systems a原创 2017-06-29 09:59:25 · 824 阅读 · 0 评论 -
大端与小端存储模式详解
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big E转载 2017-04-11 17:50:38 · 420 阅读 · 0 评论 -
snprintf使用注意-会自动加上‘\0’结尾
snprintf使用的时候会自动补上结尾,例如打印一个64位的地址:char str[19] = {0};snprintf(str, 19, "%018p", p);/************************************************************************* > File Name: main.c > Author原创 2016-12-15 10:50:33 · 8654 阅读 · 0 评论 -
snprintf是否会自动将字符串末尾填'\0'?
snprintf是否会自动将字符串末尾填'\0'?Let len be the length of the formatted data string (not including the terminating null). len and count are in bytes for _snprintf, wide characters for _snwprintf. If原创 2016-12-06 12:24:06 · 4743 阅读 · 0 评论 -
file 操作的一些记录
r open text file for reading w truncate to zero length or create text file for writing wx create text file for writing a append; open or create原创 2016-08-05 16:40:41 · 387 阅读 · 0 评论