自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Eyoru的博客

Fake it till U make it

  • 博客(7)
  • 收藏
  • 关注

原创 函数调用:栈帧的开辟与回退

一份源文件是由数据和指令组成的,函数通常作为指令和数据的集合被人们创造出来实现各种功能。就是这个我们天天在调用着的函数,你有没有想过:1.我们在调用它的时候系统做了什么?2.main函数中如果还有另一个函数,在跳转后运行完这个函数时,编译器怎么知道下一行执行哪个语句呢?会不会又从头执行了?3.函数在结束之后(运行到反花括号“}”处),系统又是怎么处理的?4.不同的语言对函数形参内存...

2018-07-25 23:57:54 1671 3

原创 编译和链接详解

  在我们将源代码打好以后,检查无错,点下“编译并执行”按钮。控制台输出一行又一行,程序随即正常的运行起来。这是编码的日常。  那么你有没有想过,在这份代码变成一个可以跑起来的程序的过程中,它都经历了什么呢?有人说简单啊,不就是先编译再链接么。本文就详细的对编译链接的过程进行分析,里面或许真的有你不知道的东西呢。 我们先大体地概括一下:假设我们现在辛辛苦苦写好了一份代码,它的文件名叫做...

2018-07-24 10:22:42 5293

原创 虚拟地址空间布局——基于x86体系32位下Linux系统

 我们知道,一个可执行文件运行起来的话它就变成了进程。在x86 32bit Linux下,我们的系统会给每个进程分配一个4G大小的虚拟地址空间。你可能会说,我电脑总共就4g内存这每个进程都给4g怎么可能啊。注意虚拟两个字。那么这块空间里都装了什么东西呢?其中前3G内存是用户空间,最后1G是内核空间。所有的进程有各自的用户空间,但所有的进程都共享一个内核空间。不要着急,我们从上到下挨个来...

2018-07-23 21:29:20 2047

原创 内存对齐&结构体大小的计算

在我的博客《C语言的预处理详解》中最后一段,讲到了#pragma预处理符,其中有一个参数的使用就是#pragma pack(n)。这个参数的意义就是告诉编译器,令编译器按照n个字节进行对齐。什么又是对齐呢?为什么会有这个东西呢?听我细细道来。什么是内存对齐?先看下面的结构体。struct TestStruct1{ char c1; short s; ...

2018-07-18 23:03:34 3119 3

原创 C语言的预处理详解

说到预处理,大家绝对不会觉得陌生。因为我们在开始编写一份程序的时候,从键盘录入的第一句话:#include <stdio.h>这里就使用了预处理,引入头文件。同时在文件开头我们常见的#define ,#ifdef,#pragma之类的都属于预处理。 那么,我们在此先提出几个问题:1.预处理是C语言的一部分吗?2.包含#号的都是预处理吗?3.预处理指令后面是不...

2018-07-18 00:45:50 34028 7

原创 大端存储和小端存储及基于c语言的测试函数

1

2018-07-15 23:14:48 1072

原创 C语言中的32个关键字及部分讲解

说起c语言中的关键字,大家印象最深的可能就是int,double等定义一个数据变量时所使用的关键字了。但是除了这些数据类型的关键字还有哪些呢?for?while?没错,这些确实都是,但是并没有一个系统的总结。本文笔者就将就c语言学习中所遇到的共计32个关键字进行整理。请善用搜索功能。 首先是对关键字的罗列以及相应的简介:auto                    声明自动变量 缺省...

2018-07-13 21:52:18 10537 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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