![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 69
plum2003
这个作者很懒,什么都没留下…
展开
-
裘宗燕:C/C++ 语言中的表达式求值
经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个变量(通过赋值、增量/减量操作等),什么时候从该变量能够取到新值?转载 2013-03-05 10:12:51 · 467 阅读 · 0 评论 -
C语言两个以字符串形式出现的超级大数相加
任意两个超级大的整数以字符形式出现,如"999999999999999999999",计算它们的和,结果仍以字符串形式输出。 #include #include #define MAX_LEN 1024int CalcBigNumberAdd(const char *pNumA, const char *pNumB, char *pRet){ int iLenA = 0;原创 2013-04-27 16:16:39 · 3161 阅读 · 0 评论 -
转载高精度加减乘除法
#include #include using namespace std;inline int compare(string str1,string str2) {//相等返回0,大于返回1,小于返回-1 if (str1.size()>str2.size()) return 1; //长度长的整数大于长度小的整数 else if (str1.size(转载 2013-05-29 14:39:33 · 565 阅读 · 0 评论 -
UDP丢包原因
一、主要丢包原因1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个udp包,不切割直接通过sen转载 2013-06-07 17:20:33 · 722 阅读 · 0 评论 -
Linux下获取MAC地址
#include #include #include #include #include int get_mac(char* mac){ struct ifreq tmp; int sock_mac; char mac_addr[50] = {0}; sock_mac = socket(AF_INET, S原创 2013-07-02 14:22:51 · 775 阅读 · 0 评论 -
HandlerSocket系列(二):架构、特点及其应用场景
一、HandlerSocket整体架构HandlerSocket设计为MySQL的一个plugin,作为mysqld进程的daemon存在,与Client通过TCP/IP交互,进行CRUD相关的操作。基于此原因,不仅可以通过HandlerSocket操作存储层,还可以通过传统的MySQL的方式来操作。这样就可以实现:简单快速的操作通过HandlerSocket来实现,而对于一些复杂的操作,还是转载 2013-07-24 10:10:37 · 642 阅读 · 0 评论 -
HandlerSocket系列(一):由来
新的技术,几乎都是由需求驱动产生的。在仔细深入研究HandlerSocket之前,我觉得有必要先了解一下它所处的历史背景及其它想解决什么样的问题。我想这应该是最关键的,也是做这方面研究和技术选型时第一个应该关注的要点。先来说一下它的作者Yoshinori Matsunobu,现为DeNA公司的数据库和基础设施架构师,HandlerSocket就是Yoshinori在DeNA公司工作时开发的转载 2013-07-24 10:08:53 · 490 阅读 · 0 评论 -
HandlerSocket系列(三):性能及其性能优化
一、HandlerSocket性能HandlerSocket作者测试HandlerSocket在查询情况下QPS为75K,Memcached为40K,MySQL为10K。但是需要注意到它的测试场景,一般的应用是很难有这样的场景的,所以说一般应用是很难达到7.5倍于MySQL的情况,但是性能的大幅度提高是不容置疑的。作者的测试场景如下:1. 关闭MySQL的query cache:也就是My转载 2013-07-24 10:12:39 · 601 阅读 · 0 评论 -
重读C++primer 第三版(一)
最近不是很忙,准备重新温习一遍C++primer 第四版,并将重点记录在此,方便翻阅。1,procedural programming和object based programming,过程化程序设计的特点是一个问题可直接由一组算法来建立模型,数据和算法独立存储,而面向对象程序设计则是通过一组数据抽象来建立问题的模型,它通过inheritance和dynamic binding扩展了抽象数据类原创 2013-09-18 14:55:25 · 1033 阅读 · 0 评论 -
一个简单的猜数字游戏
一个简单的猜数字游戏,程序随机生成一个不包含重复数数字的4位数,用户输入数字进行猜测,猜测的结果,程序以?A?B的形式给出,其中,A前面的数字表示猜测的数字中位置和数字都正确的个数,B前面的数字表示数字正确但位置不正确的个数,总共8次猜测机会。代码: #include #include #include #include #include using namespace std;原创 2013-04-19 11:46:52 · 1205 阅读 · 0 评论 -
Interprocess Communications
关于windows下进程间通信的文章文章出处:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx#base.using_dde_for_ipcThe Windows operating system provides mechanisms for facilitating转载 2013-04-10 16:23:17 · 680 阅读 · 0 评论 -
统计一篇英文文章中出现次数最多的前五个单词
#include #include //统计单词最大个数#define MAX_WORD_COUNT 500//保存单词及其出现的个数typedef struct WordCount { char cWord[20]; int iCount;}T_WordCount;//统计单词个数并输入排名前五的单词int CalcEachWord(const char *pTex原创 2013-03-05 10:22:45 · 3523 阅读 · 1 评论 -
数组和指针总结
数组和指针总结初学者往往知道数组和指针之间有联系,但是具体的联系和限制却又搞不清楚,想当年我也如此,这里就将这方面的知识做个总结吧。1.定义定义数组时必须指定数组的类型和大小,定义指针时只需要指定类型。2.存储空间的分配对于数组,因为系统会按照你指定的大小为数组分配存储空间,这也是为什么数组必须指定大小的原因,如:char array[5] ; //系统会自动为其预转载 2013-03-08 17:43:29 · 464 阅读 · 0 评论 -
C++ string版本的字符串分隔函数
一个C++ string版本的字符串分隔函数//用于将字符串按给定分隔符切割,并保存到vector中//参数://@strSource 待切割的字符串//@vDest 出参,保存切割后的子字符串//@strDdivision 分隔符void SplitCString(const string strSource, vector& vDest, string strDdivision原创 2013-03-08 11:00:23 · 639 阅读 · 0 评论 -
c/c++编程规范
新公司的c++的编程规范,学习下.前 言 软件编程规范的目的是为了统一公司软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生产力。本规范是针对C/C++ 语言的编程规则,其它不同编程语言可以参照此规范的基本原则。本规范适用于公司所有产品的软件源程序,同时考虑到不同产品和项目的实际开发特性,本规范分成转载 2010-07-05 09:07:00 · 1970 阅读 · 0 评论 -
printf函数介绍
int printf(const char *format,[argument]);format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 o 无符号8进制整数 u 无符号10进制整数 x 无符号的16进制数转载 2013-04-02 14:45:59 · 457 阅读 · 0 评论 -
ShellExecute与ShellExecuteEx的用法
ShellExecute:1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型:HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);转载 2013-04-02 14:49:56 · 609 阅读 · 0 评论 -
一个判断CPU字节序的函数
以下函数用于判断CPU是否为小端序:union Test{ char cArray[2]; short sInt;};int CheckIsLittleEndian(){ Test tTest; tTest.sInt = 0x1234; return (tTest.cArray[0] == 0x34);};利用联合体各变量共享内存的特性进行判断原创 2013-03-22 14:06:14 · 999 阅读 · 0 评论 -
从一段文本中提取起始结束标记中间的部分
/** @Method: ExtractText* @Note: 从一段文本中提取起始结束标记中间的部分 1,若文本包含起始结束标记,则提取中间部分 2,若文本有起始标记,但无结束标记,则从起始标记开始,直到结束 3,若文本没有起始标记,则返回失败* @FullName: ExtractText* @Access: public *原创 2013-04-10 16:48:44 · 834 阅读 · 0 评论 -
重读C++primer 第三版(二)
第二部分主要内容为第二篇 基本语言1,字节(byte)和字(word)。在32位系统下,一个字节由8位(bit)组成,而一个字由32位或者说4字节组成,并且,字是机器相关的,不同计算中的字长可能不一样。现在系统正在朝64位系统转换,64位系统里,字长通常为8字节。2,基本数据类型长度。 字符型char,通常用来表示单个字符和小整数,一般占用一个机器字节 整形in原创 2013-09-24 17:19:34 · 740 阅读 · 0 评论