UC笔记

 

一,计算机的框架

函数的封装

函数A的实现代码中,调用函数B,那么就说函数A是对函数B的封装。

application ,os , hardware

OS :操作系统的内核

GNU项目组在 unix 创建了bash vi  gcc....

什么是操作系统?

操作系统是管理计算机硬件资源的一款软件

操作系统还是管理计算机软件资源的一款软件

操作系统还是一款管理计算机资源的软件

操作系统的内容

管理内存

管理文件

文件系统

进程管理

进程间通信

线程管理

网络通信

什么是GNU?

GNU 项目组 bash,vi,gcc 等等

 

计算机语言发展史

机器语言 逐步发展为汇编语言,使用汇编语言编写的代码,在机器上运行之前需要翻译成机器语言。

使用汇编语言编写一些语句块,使用C语言的关键字和其他对应。(汇编语言->C语言) 

预处理指令是给预处理器下的指令

所有以#开头的都是预处理指令:文件包含 ,条件编译,宏定义,注释

第一步预处理:gcc -E helloc.c  -o Hello .i

第二步将预处理后的程序转换成汇编语言的文件 gcc -S helloc.i  -o Hello .s(产生AT&T汇编)

第三步将汇编语言转换成机器语言gcc -c hello.s 

第四步:需要将目标文件和库文件,运行时文件绑定(链接)gcc hello.o

gcc的几个参数

-E  预处理

-S  将C语言编译成汇编语言

-c  将C语言编译/汇编成机器语言

-o  指定输出文件名字

echo $?

补充:echo  “字符串”     将字符串显示到屏幕上

$?最近的一条指令执行结果

帮助的使用

man  3 库函数的名字

man 2 系统调用的函数名字

man 1 命令

 

大型软件开发组织架构

多个源文件编译/链接形成可执行文件

第一步:编写模块之间的接口。定义一些使用到的协议。定义头文件。头文件的名字。

变量的生明不为变量分配空间。而变量的定义是为变量分配空间的。

extern int i

extern 的作用是扩展变量的作用域

第二步:编写add.c文件,实现t_add和t_sub函数

第三步:编写mul.c文件,实现t_mul和t_div函数

第四步:编写test.c文件,在其中调用函数实现加减乘除运算

第五步:以源文件为单位进行编译

编译的基本单位.c源文件。

第六步:链接的过程,将多个目标文件链接成可执行文件tt gcc add.o mul.o test.o -o tt

补充:

nm命令的使用

nm   二进制文件名  (nm add.o)

 

链接的过程,就是多个文件拼接成一个可执行文件的过程

目前的链接过程发生在编译的时候,这个链接称为静态链接

动态链接是在代码加载到内存执行的时候发生的。

gcc -v add.o mul.o test.o tt  编译链接形成可执行文件,并将链接的过程全部显示出来

程序的入口不是main函数。C程序的入口是main函数。

C语言是由函数组成的。

写工程的时候,需要写清楚函数之间的调用和被调用的关系即可。

#include <>和" "的区别 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值