
C基础
文章平均质量分 90
darkfaker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数调用约定及函数返回值_C底层18/2/26
前情提要这次的这篇关于函数约定及返回值的博客,并没写的很精髓,如果看到了就只做参考吧。这方面的知识还是推荐看《程序员的自我修养》。 本文中有关于函数调用堆栈的内容可先浏览博客函数调用堆栈过程详解一:函数调用约定调用约定所规定的 1)函数参数的传递顺序和方式 这一项其实说的就是函数产生的参数入栈顺序会不同 对于C中的三个约定_cdecl _stdcall _fastca...原创 2018-02-26 18:54:16 · 637 阅读 · 0 评论 -
链接过程中的符号重定位_C底层18/2/25
前情提要对于编译和链接的基本过程,这里只对链接过过程的符号重定位做了解释,因为个人认为在链接过程中符号的重定位是最重要的一步,也是其精华所在,知道了这一步的实现过程可以解决很多问题,包括面试中可能会问到的关于extern等的方面。所以这里只有对符号重定位进行了详细的说明,如果想了解更多可以参看《程序员的自我修养》第2,3,6 章节。里面有很详细的解释。 如果对虚拟地址空间的内存分布还不够了...原创 2018-02-25 19:06:48 · 728 阅读 · 0 评论 -
函数调用堆栈_C底层18/2/25
前情提要函数是C语言的基本组成单位,相信平常使用函数也是觉得很easy的,但是有没有深入了解一下其具体实现过程呢? 这里将对函数调用堆栈的具体过程做一个疏通,虽然不能保证很深入,很有知识,但能保证对函数调用堆栈的过程有一个大概的了解。因为这本身就是对初学者适用的。我们要了解函数堆栈,就必须得先知道栈是个什么东西。先给出理论:栈 栈在经典计算机中被定义为一个特殊的容器,用户可以...原创 2018-02-25 20:19:13 · 423 阅读 · 1 评论 -
8大排序_C算法_基础数据结构18/1/30
前情提要在数据结构的学习中,必不可少的基本算法就是排序。排序算法可以分为内部排序和外部排序内部排序是数据记录在内存中进行排序 外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等在基础数据结构中有8种必看的排序方法,这8中方法各有各的长处,也有其短板。...原创 2018-02-04 17:24:50 · 696 阅读 · 0 评论 -
C的数组的扩充与指针的引入_VS_C_17/12/17
数组在上一章已经做过一些解释,接下来对其做一个扩充。并探讨一下指针。 提要: 1,数组中左值与右值。 2,柔性数组。 3,定义指针的要点。 4,void*空类型指针。 5,const与指针的修饰关系。 6,&和*与指针和数组的关系。 7,sizeof与数组的关系。一:数组扩充, 1.1左值与右值 什么是左值与右值?int x = 10;int y = 20;原创 2017-12-17 23:51:55 · 322 阅读 · 0 评论 -
C中if与switch的区别_VS_C_17/11/22
一:两种语句的区别在讨论if与switch这两种语句的区别时,应该从它们最基础的层面开始。所以我们应该从它们的汇编实现开始探讨。而且应注意到它们都是C中最常用的选择语句,既然是选择语句就还得从它们的实现效率上讨论一番。先看switch语句:1,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相的。从而,switc原创 2017-12-08 22:54:50 · 2381 阅读 · 0 评论 -
C中char和float在内存中的储存方式_VS_C_17/11/15
我们要想了解基本数据类型在内存中的储存方式就必须先要知道这些数据类型在内存在所占的字节数,但c的标准中并没有对此具体规定。而且这个也与操作系统和编译器有关,比如同样是int类型的数据在不同的编译器中有4和2两种字节储存方式。 虽然没有具体规定,但其有一定的原则: sizeof(short int)<=sizeof(int) sizeof(int)<=sizeof(long int)原创 2017-12-05 19:18:44 · 2176 阅读 · 0 评论