本系列文章由jadeshu编写,转载请注明出处。http://blog.csdn.net/jadeshu/article/details/50751977

作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流

一.程序基础(重点)

1.1为什么需要操作系统?

因为在以前是直接操作硬件之上的,这样每个硬件不同都需要重新编写程序会很麻烦,这样人们就想到了将软件和硬件隔离,

让人、程序直接跟操作系统打交道,在让操作系统去控制硬件。

1.2为什么需要内存管理器

因为需要代码安全以前程序之间不干涉彼此的内存,同样使每个程序都有逻辑上的空间大小,具体如下图所示

1.3程序编写过程和加载过程(简述)

1.3.1程序编写过程:

我们平常写的代码为文本文件,进行编译后生成可执行文件!过程如下:

源码--->目标编译器----->生成对应目标平台的汇编源码(x86,mips等)--->目标汇编器----->生成对应的二进制可执行程序

*为了方便管理和应用,代码编译后将分为:

*a.代码段(可读)

*b.数据段(可读写)

*c.栈(代码运行时函数局部变量和保存执行上线文用的内存区域)  (可读可写)

*d.堆(代码运行时分配的内存区域) (可读可写)

代码编译后确定的地址是虚拟地址/逻辑地址。

1.3.2程序加载过程:

当我们点击程序时,操作系统将程序(可执行文件)加载到内存中,CPU的CS:IP执行要运行的首地址代码处(即是代码段位置),CPU从该位置取一条指令执行一条指令;

*a 取一条指令后执行一条指令,CS:IP默认跳转到下一条指令位置。

*b 当取有些指令后,会改变CS:IP的地址,即发生跳转其他地址的位置。

二.变量

2.1.变量声明

---------2.1.1建立存储空间  如float f;   (定义性声明)

---------2.1.2引用声明(不需要建立存储空间) 如extern float f

2.2.变量格式

---------2.2.1【可选修饰符】 【变量类型】变量名 【修饰符】【标识符】

如static int iStaticNum;

---------2.2.2可选修饰符有按变量内存理解分auto(默认),register(限制变量定义在寄存器上的修饰符),static(静态),extern(外部声明/作用域),const(常量),[volatile(告知编译器编译方法的关键字,不优化编译)]

2.3.全局变量和局部变量(包括静态变量)

2.4.

2.5.初始化  赋值=

////////////////////////////////////////C语言//////////////////////////////////////////////////

1.代码前定义 (编译器和标准不同结果不同)

////////////////////////////////////////C++语言//////////////////////////////////////////////

1.先定义后使用!(任何位置)

C语言学习笔记2-程序基础和变量的更多相关文章

  1. [Golang学习笔记] 04 程序实体1 变量声明

    变量声明: Go语言的程序实体包含:变量.常量.函数.结构体和接口,是一门静态类型的编程语言. (在声明变量或常量的时候,需要指定类型,或者给予足够信息是的Go语言能够推导出类型) Go语言变量的类型 ...

  2. [C语言学习笔记一]基本构架和变量

    基本构架 所有的C程序都有一个 main 函数.其后包含在大括号中的是 main 函数的内容. main函数是程序的入口,程序运行后,先进入 main 函数,然后一次执行 main 函数体中的语句. ...

  3. R语言学习笔记:glue包实现变量传参

    glue包介绍 glue包可用于自定义变量,然后通过传参的方式,对字符串部分内容进行自适应修改. 例如:可将日期赋值为:date = as.Date("2019-12-05"),然 ...

  4. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  5. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  6. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

  7. Go语言学习笔记一: Hello World

    Go语言学习笔记一: Hello World 听说Go语言又快又简单.即具有C语言的运行速度,又具有Python语言的开发效率,不知道真的假的.所以特意来学学这门"老"语言. 下载 ...

  8. 《C# 语言学习笔记》——目录

    C# 简介 变量和表达式 流程控制 3.1 布尔逻辑 3.2 goto语句 3.3 分支 3.4 循环 变量的更多内容 4.1 类型转换 4.2 复杂的变量类型 4.3 字符串的处理 函数 5.1 定 ...

  9. 《C# 语言学习笔记》——C# 简介

    1 什么是.NET Framework .NET Framework 是Microsoft为开发应用程序而创建的一个富有革命性的新平台. 1.1 .NET Framework 的内容 .NET Fra ...

随机推荐

  1. ckplayer获取播放时长一

    <div id="a1"></div> <div id="nowTime"></div> <script ...

  2. (七)Activiti之历史活动查询和历史任务查询和流程状态查询

    一.历史活动查询 本章案例是基于上一章节案例的基础上,流程走完后进行测试的,也就是下图的流程从学生请假到班主任审批都已经完成,本章用来测试查询历史活动和历史任务的 activiti5的历史活动包括所有 ...

  3. leetcode --165--php

    class Solution { /** * @param String $version1 * @param String $version2 * @return Integer */ functi ...

  4. 跨站脚本攻击XSS(二)——session劫持

    转载自:http://www.cnblogs.com/dolphinX/p/3403027.html 在跨站脚本攻击XSS中简单介绍了XSS的原理及一个利用XSS盗取存在cookie中用户名和密码的小 ...

  5. SQL递归查询(with as)

    SQL递归查询(with cte as) with cte as(    select Id,Pid,DeptName,0 as lvl from Department    where Id = 2 ...

  6. JS实现当前选择日期是星期几

    使用到的日期插件是My97 Datepicker,这里通过onpicked方法触发getDay()方法,在getDay()方法中获取已选择的日期来判断是星期几. 插件下载地址:http://www.m ...

  7. session过期,登录页面嵌套问题解决

    项目主页是框架模式时,如果登录后长时间没有活动(操作),存储在session中的登录信息过期了,这时再去进行操作时,就会出现登录页面嵌套的问题,怎么解决呢? 这里介绍一种方法,只需要加上一段javas ...

  8. HttpResponse与JasonResponse

    两者的含义 我们都知道后台给前台返回的数据都是字符串类型,那么怎么返回成为一个问题 HttpResponse与JasonResponse都是django中后台给前台返回数据的方法, 并且他们最后走的都 ...

  9. java如何在不访问数据库就可以对list分页?

    废话不多说,直接上代码 import java.util.ArrayList; import java.util.List; public class demo { public static voi ...

  10. STM32窗口看门狗WWDG库函数的一点思考

    WWDG当前计数器的值以及激活位和WWDG_CR这个寄存器相关.如下图所示: 而STM32f10x的库函数提供了两种设置WWDG_CR[0:6]位的方式. WWDG_SetCounter方法 #def ...