C++
程序猿阿三
Good ideal worth spreading
展开
-
C++基础(一些经常混淆的概念)
这篇博客主要是自己在看完C++ Primer Plus第六版后的一个笔记,如果大家想学C++,还是建议先看一下C++ Primer plus(这本主要是基础),看完这本书之后,才觉得很多东西要去学,千万不要别说精通C++,想精通C++,要学特别多。在复习C++之前,一门高级语言是如何被计算机所识别的(即其识别的过程如下:) 操作符重载大多数运算符都可以通过成员和非成员函数进行重载,但是下列的运算符原创 2016-05-26 22:21:05 · 1501 阅读 · 0 评论 -
C++中的重载,重写, 重定义 差别
一、重载(overload)指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。 (1)相同的范围(在同一个作用域中) ; (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 (5)返回值可以不同;二、重写(也称为覆盖 override)是指派生类重新定义基类的虚函数,特征是: (1)不在同一个作用域(分别位于派生类与基类) ; (原创 2016-06-26 21:15:38 · 2085 阅读 · 0 评论 -
epoll之一:epoll的原理
之前 我写过一篇博客IO复用之select poll epoll 函数,大概介绍了一下epoll和select,poll的一些区别,接下来要 从原理剖析epoll的强大的原因 select和poll的工作机制在某一时刻,进程收集有事件连接时,大部分的连接是没有发生事件,但是 select和poll的工作机制,在 每次收集事件 的 时候,都把全部 的 连接的 套接字传给操作系统(这首先就是用户态内存到原创 2016-06-22 13:36:33 · 539 阅读 · 0 评论 -
C++ 类型转换运算符
C语言存在两种类型转换(隐式转换,显式转换) 隐式转换,是针对不同类型之间的赋值和运算,函数调用传递参数 这些的转换都是由编译器自动完成char ch; int i=ch; 显式转换 由程序员在变量前面添加型转换 char *pc=(char *)pb void *ps=(void*)pa C++ 中的类型转换* 通过上述的两种方式,C语言大部分的类型转换都可以顺利进行,C++继承原创 2016-07-01 09:20:42 · 1095 阅读 · 0 评论 -
C++ 中的sprintf和snprintf 函数的区别
在编程过程中经常有字符串转数字和数字转字符串,相应的函数大家最经常见到可能是atoi和itoa。但是itoa不是标准库里面的函数,所以接下来介绍下面两个函数sprintf和snprintf函数,并将它们比较一番。最近写的博客目前就是一些自己在实现基于 Nginx磁盘缓存的一些知识总结 sprintf()函数用法int sprintf(char *string,char *format,arg_lis原创 2016-07-21 10:59:31 · 6957 阅读 · 0 评论 -
C 程序编译过程
通常我们使用gcc来生成可执行程序,命令为: gcc hello.c,默认生成可执行文件a.out,其中经过下面几个步骤:预处理(processing) 编译(compilation) 汇编 (Assembly) 链接(Linking) 接下来将介绍每个步骤相应都做了那些工作 预处理(preprocessing) 将所有的#define删除,并且展开所有的宏定义 处理所有的条件编译指令,比如#原创 2016-07-21 14:27:26 · 739 阅读 · 0 评论 -
静态库和动态库
有一篇博客专门介绍程序编译过程,在程序编译步骤中有一个很重要的步骤就是链接,这篇博客主要比较静态库和动态库的差别。 在了解两者的区别,我们先学习一下基础知识 库是什么库就是写好的,现有的,成熟的可以 复用的代码,现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都是从零开始,本质上库 就是一种可执行代码的二进制形式,可以被操作系统载入内存 执行,库有两种:静态库(.a,.lib)和原创 2016-07-21 14:33:30 · 493 阅读 · 0 评论