day01-UC-开发环境


两点建议:

1.注意团队合作

2.温故而知新

今天内容:

1.什么是操作系统?操作系统的作用

操作系统是一款软件。

管理计算机资源的软件。

计算机资源有软件资源和硬件资源。

常见的计算机操作系统

unix  GNU/LINUX   windows

ios macos

补充:

1)标准c函数库。本质就是一个仓库,

这个仓库表现在计算机里就是一个文件。

在仓库里存放的是C语言的函数。

2)shell是用户和操作系统交互的窗口

3)system call 本质就是C语言写成的函数。

void func1(void arg)

{

func2();

}

专业术语  分层、透明

2.GNU项目

GNU项目组

开放源代码。《GNU宣言》。

GNU项目组开发了很多实用的小项目。

gcc编译器、vi编辑器、bash

GNU/LINUX操作系统   linux内核和实用的app组成

3.计算机语言的发展历史

开关         状态

1     1       2

2       2       4

3       3       8

。。。 。。。   。。。

32      32      4G

11111111,11111111,00000011,00000010  add

11111111,11111110,00000011,00000010  sub

if...else

while

for

4.复习C语言的知识

.c    源文件的后缀

.i    预处理后的源文件

.s    汇编程序的源文件后缀

.o     目标文件的后缀

补充:

1)echo  字符串

在显示器上显示字符串

echo   $变量的名字

将变量的内容显示在屏幕上

echo $?

将上一个命令的执行结果显示到显示器上

linux上写c程序,规则,程序正常运行结束返回0,

不正常返回非0;

2)man帮助

man 1 commnad   linux命令的帮助信息

man 2 system call 察看系统调用的帮助信息

man 3 标准c库函数名   查看标准C库中的函数的帮助信息

hello.c为例

a)预处理阶段

.c源文件进行预处理

gcc -E hello.c -o hello.i

(一) 程序中的注释全部去掉

(二) C程序的源代码中以#(sharp)开头的,

都是预处理指令。

#include <stdio.h>

#include <>

#include ""

b)从预处理文件到汇编语言

gcc -S hello.i -o hello.s

c)将汇编语言汇编成目标文件(机器语言)

gcc -c hello.s -o hello.o

d)需要将目标文件和运行时库文件进行绑定(链接)

gcc hello.o -o hello

e) ./hello

集成:

gcc hello.c

gcc -v hello.c 显示所有的编译过程

5.大型软件的开发模型

第一步:定义头文件(代码参照tmath.h)

第二步:头文件中函数的实现

第三步:函数的调用

每一个.c源文件中可以包含多个函数。但是编译的单位是

源文件,不是函数。

补充:

变量的声明不为变量分配内存空间。

变量的定义为变量分配内存空间

宏定义:(代码参见pre_do.c)

#define PI 3.14

nm命令的使用

nm  二进制文件   察看文件的导出符号

T

U

静态链接:发生在编译阶段

动态链接:程序运行的时候,才发生的链接。

ldd 可执行文件   查看可执行文件依赖的库文件

框架和组件

6.typedef的使用

typedef是给类型起别名。

第一步:先定义变量

int count;

第二步:

typedef int count;

第三步:

count i;

int array_t[3];

typedef int array_t[3];

array_t a;==int a[3];

代码参见(array.c)

struct node{

int data;

struct node *next;

};

typedef struct node node_t;

typedef node_t *node_p;

node_p p;

node_t **q;

node_p *q;

猜你喜欢

转载自blog.csdn.net/rong11417/article/details/79543778