Linux C/C++后台开发

Talk is cheap. Show me the code!

atoi实现

atoi()函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace()函数来检测),直到遇上数字或正负符号才开始做转换,后续再遇到非数字或字符串结束时(‘\0’)才结束转换,并将前面部分的转换结果返回。#define INT_MAX 0x7fffffff ...

2017-05-02 11:24:08

阅读数:617

评论数:9

memcmp比较两个struct是否相等

struct MyStruct { char a; int b; }; MyStruct A, B; memcmp(&A, &B, sizeof(MyStruct));A和B是否可以通过memcmp来判断是否相等。我一直以为虽然要内存对齐,但是a后面会补三个’\0’...

2017-03-07 16:04:05

阅读数:1383

评论数:2

不定参数函数牵扯出来的栈的生长方向和大端小端模式

主题:CPU的架构决定了大端小端模式和栈的生长方向。 首先参数从右到左压栈的方式,这是C语言决定的,比如说Pascal就是从左到右压栈,所以Pascal不支持不定参数函数。比如:printf("%s%d%d\n", s, a, b);格式字符串是确定存在的,后面的变量都是不确...

2017-03-06 21:08:32

阅读数:341

评论数:0

linux下strncasecmp的实现

linux下不区分大小写的字符串比较函数原型: int strncasecmp(const char *s1, const char *s2, register size_t n); 返回值:如果相等返回0     如果s1>s2,返回正整数     如果s1<s2,返回负整数...

2017-03-06 16:49:54

阅读数:743

评论数:2

#define MAX(a, b, ……)

用宏定义MAX(a,b)求两个数最大值:#define MAX(a,b) a>b?a:b用宏定义MAX(a,b,c)求三个数最大值:#define MAX(a,b,c) (a>b?(a>c?a:c):(b>c?b:c))用宏定义MAX(a,b,c,d)求四个数最大值:#de...

2017-03-06 15:46:31

阅读数:715

评论数:0

线程安全的单例模式

把构造函数私有化,对外提供一个静态的成员函数获取对象实例,这是我们对单例模式的最简单印象,但是如果多线程同时获取对象实例的时候,我们首先想到的是加锁class Singleton { private: static Singleton* m_instance; Si...

2016-07-13 15:03:32

阅读数:298

评论数:0

不调用C/C++的字符串库函数,请编写函数strcpy

不调用C++/C的字符串库函数,请编写函数 strcpy

2016-07-13 11:31:58

阅读数:2700

评论数:2

拷贝构造函数可以访问私有数据成员

访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。

2016-07-13 10:55:55

阅读数:1841

评论数:4

提示
确定要删除当前文章?
取消 删除
关闭
关闭