
C/C++
文章平均质量分 64
linpengbin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存分配函数malloc 与 calloc的用法及区别
在C语言的动态分配内存过程中,我们经常使用到函数 malloc 与 calloc。 这两个函数均包含在“malloc.h"中,对其用法我们需有一个比较深刻的理解。函数malloc的原型为:void *malloc( unsigned int num_bytes) 。分配长度为num_bytes个字节的内存块,返回值为无类型指针,该指针指向所分配内存块的起始位置,因此利用该无类型指针赋值给其他原创 2015-01-28 22:44:12 · 6865 阅读 · 0 评论 -
构造函数与析构函数中不调用虚函数
在C++中,提倡不能在构造函数和析构函数中调用虚函数。 这是为什么呢?首先,我们先回顾一下C++虚函数的作用。 虚函数的引入是c++运行时多态的体现,通过调用虚函数可以在运行程序时实现动态绑定,体现了面向对象编程多态的思想。那为何提倡不能在构造函数与析构函数中不能调用虚函数。接下来我们通过代码分析在构造函数或者虚构函数中调用虚函数是否可行。假设我们有两种商品A, B。 我们要记录着两种商品的销售记原创 2016-06-02 00:44:57 · 3377 阅读 · 0 评论 -
构造函数及析构函数与虚函数的关系
我们都知道构造函数不能为虚函数,而基类的析构函数一般都要定义为虚函数。今天重新复习了一下,特在此记载,以便查找。构造函数不能为虚函数主要有以下两点1、必要性分析: 当定义派生类对象时,它会主动依次调用构造函数,顺序为基类的构造函数->一级派生类构造函数->二级派生类构造函数….直到当前派生类的构造函数调用完毕为止,到此派生类对象生成。 而虚函数存在的意义为动态绑定,从上一段话可知,它会从基类开始原创 2016-03-05 20:38:08 · 2479 阅读 · 0 评论 -
回调函数
这段时间在研究ffmpeg的代码,发现里面为了兼容各种格式的音视频编解码,大量采用了回调函数,使得ffmpeg的兼容性得到很好的提升.那么什么是回调函数呢,它的作用是什么,我们应该怎么用它. 作者浏览了网上的很多文章,发现下面的这一遍写的不错,故转载.原文: 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:桥头堡 链接:http://www.zhihu.com原创 2016-01-25 18:21:52 · 889 阅读 · 1 评论 -
指针常量与常量指针的区别[转帖]
三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int *p;2)int const *p;常量指针的转载 2015-12-11 15:44:26 · 534 阅读 · 0 评论 -
[转载]函数编写规范
一、可重入函数 1)什么是可重入性? 可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相 反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数 的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任 意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要 么在使用全局变量时保护自己转载 2015-09-04 21:34:42 · 953 阅读 · 0 评论 -
头文件应该怎么写
因为一个对象只能定义一次,能够声明多次,所以头文件最重要的规则是只声明,不定义(除少数对象外)。而且只声明其他文件需要用到的对象,其他文件不需要用到的对象没必要在头文件中声明。当其他文件需要用到本文件定义的一些对象时,我们可以将这些对象写到头文件中,其他文件只要include这个头文件即可使用相应的对象。头文件一般包含类的定义(不包含类定义外部的成员函数实现),extern变量声明,以及函数声明。要原创 2015-08-26 22:34:33 · 12678 阅读 · 0 评论 -
函数参数值传递
函数参数传递以C(C++)为例,函数参数传递一般来说有三种方式:值传递,指针传递,引用传递。其中引用传递属于C++对C函数参数传递方式的扩展。 # 值传递:值传递是传递一个实参的拷贝副本,因此在函数内部对参数的操作,相当于对该实参拷贝副本的操作,对实参本身没有任何的影响。代码示例如下:#include void swap2Element(int , int);原创 2015-04-29 21:20:39 · 1573 阅读 · 1 评论 -
C编程规范(不断补充中)
1、双等号,常量在左,变量在右:常量放在双等号的左边,变量放在双等号右边。 编程规范反复强调要将变量放在双等号的右边,特别是在实际的项目中,更应该如此。在条件判断语句if中,如:if(2 == a) 写成: if(2 = a) 双等号写成赋值语句,变量在右,会报错。 写成: if(a = 2) 不会报错。在写if(null != a) 判断不等时,也应该遵循常量在左,变原创 2015-01-29 14:15:40 · 1170 阅读 · 1 评论 -
C语言函数fread() , fwrite() ,fseek()用法分析
网上已经有不少关于c语言函数fread() 和fwrite() 用法分析的文章,在此将这两个函数的用法写下来,是为了巩固所学,加深印象,也为了日后方便查询复习比较,如果能帮助到某些朋友,则是意外的惊喜。fwrite()函数的意义是将某二进制数据写到指定的 文件流。函数的原型为: size_t fwrite (const void *buffer, size_t size, size_t原创 2015-02-02 15:55:44 · 25889 阅读 · 0 评论 -
如何成为一个牛逼的C/C++程序员
这个题目的噱头太大,要真的写起来, 足够写一本书了。 本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路。 每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。 一、C/C++语言 如果你的基础很差, 建议不要一开始就学C++语言,从C开始学起,对程序有个初步的认识,循序渐进。C语言的书嘛,先转载 2015-02-03 14:53:51 · 772 阅读 · 1 评论 -
C语言时间差计算函数clock() 与 time ()用法分析
在很多情况下,为了评判某个算法,函数的优劣,特别是比较同一个功能的两个函数的效率高低时,我们经常通过计算耗费时间作为判断标准。C语言中有两个相关的函数用来计算时间差,分别是:time_t time( time_t *t) 与 clock_t clock(void)头文件: time.h计算的时间单位分别为: s , ms time_t 和 clock_t 是函数库time.原创 2015-02-03 20:00:15 · 43247 阅读 · 1 评论 -
strcpy 与memcpy 的用法以及C语言实现
c 函数库的函数 strcpy 的原形为: char *strcpy(char *strDes,const char * strSrc)strcpy按字面理解为:string copy,字符串复制。函数的两个参数均为char类型的指针,其作用是把strCrc所指向的地址开始的字符串复制到strDes所指向的地址上,包括字符串结束符'\0'。需要注意的是strSrc与strDes做指向的内存原创 2015-01-28 13:08:11 · 1735 阅读 · 0 评论 -
const, static, inline, #define的用法以及关系
在我们写代码的过程中,添加合适恰当的相应修饰符去告诉编译器该怎么做,限制编译器在我们背后偷偷的做一些出乎我们意料的行为,这样方能提高程序的鲁棒性。作为程序员,我们是主宰,应该由我们来明确告诉编译器,我们希望它做什么,不希望它做什么,而不是等发生错误的时候才花大量的时间去debug。合理应用各种修饰符,就像我们为程序开凿了一条河床,让它按照我们的意愿流淌,何乐而不为?语言有很多修饰符,我们在这里只分析原创 2016-06-04 11:47:43 · 2254 阅读 · 0 评论