![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 81
aries5555
这个作者很懒,什么都没留下…
展开
-
字节对齐
什么是对齐,以及为什么要对齐:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对 齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存原创 2012-08-04 21:09:42 · 310 阅读 · 0 评论 -
BSS段,数据段,代码段,堆和栈
来自:http://hi.baidu.com/%C6%BF%D6%D0%B5%C4%C5%AE%CE%D7/blog/item/5043d08e741075f3503d922c.html的说法。ld 时把所有的目标文件的代码段组合成一个代码段,把所有的数据段组合成一个数据段.######################################################转载 2012-08-27 11:32:35 · 4130 阅读 · 0 评论 -
C语言代码优化
(1)Switch语句中根据发生频率来进行case排序 Switch 可能转化成多种不同算法的代码。其中最常见的是跳转表和比较链/树。当switch用比较链的方式转化时,编译器会产生if-else-if的嵌套代码,并按照顺序进行比较,匹配时就跳转到满足条件的语句执行。所以可以对case的值依照发生的可能性进行排序,把最有可能的放在第一位,这样可以提高性能。此外,在case中推荐使用小的连续原创 2012-08-21 22:19:58 · 686 阅读 · 0 评论 -
Linux常用C函数-内存及字符串操作篇
内存及字符串操作篇bcmpbcopybzeroindexmemccpymemchrmemcmpmemcpymemmovememsetrindexstrcasecmpstrcatstrchrstrcmpstrcollstrcpystrcspnstrdupstrlenstrncasecmpstrncatstrn原创 2012-07-28 21:43:19 · 1067 阅读 · 0 评论 -
C语言内存管理
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式转载 2012-08-13 09:26:43 · 745 阅读 · 0 评论 -
标准C语言IO
函数列表:clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fgets() 从一个流获取一串字符 fopen() 打开一个文件原创 2012-08-07 21:00:34 · 920 阅读 · 0 评论 -
i++和++i
最近笔者在调试代码时发现自己在对++运算符的理解上不够深入,导致一个不应有的bug的出现。在代码书中或课堂上我们都知道++i和i++在作为一个单独语句使用时没有区别,即相当于i=i+1; 而作为语句的一部分时,如a=++i; 和a=i++; ++i先执行加1操作,再执行赋值操作(因++在前),而i++是先执行赋值操作,再执行加1操作(因++在后)。但这种论述未将其中更深的运行机制讲出来,尤其是原创 2012-08-08 09:47:11 · 388 阅读 · 0 评论 -
argc and argv
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组原创 2012-08-07 09:55:34 · 443 阅读 · 0 评论 -
宏与内联函数
宏与内联函数(面试常考)第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不转载 2012-07-21 10:55:46 · 412 阅读 · 0 评论 -
C/C++面试题2
第一部分:基本概念及其它问答题1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个原创 2012-08-06 14:02:31 · 1453 阅读 · 0 评论 -
C/C++面试题
1.new 、 delete 、 malloc 、 free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数。 malloc 与 free 是 C++/C 语言的标准库函数, new/delete 是 C++ 的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的转载 2012-08-06 13:59:39 · 1548 阅读 · 0 评论 -
strcpy,strcat, strcmp, atoi, itoa函数原型
基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)strcpy:/*********************** C语言标准库函数strcpy的一种典型的工业级的最简实现* 返回值:* 返回目标串的地址。* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。* 参数:* strDe转载 2013-03-22 00:31:07 · 785 阅读 · 0 评论