Linux C语言编程基础(必做)20191216赵子瑜
任务详情
0. 基于Ubuntu或OpenEuler完成下面的任务(OpenEuler有加分)
1.选择教材第二章的一节进行编程基础练习(2.10,2.11,2.12,2.13,2.14任选一个)
2.建立自己的项目目录,包含自己学号信息(如20190100linkedlist),构建项目结构(src, include,bin, lib, docs, test...),然后把相应代码和文档放置到正确位置,用tree命令查看项目结构,提交截图(5分)
3.进行gcc相关练习(ESc, iso, -I等)提交相关截图(5分)
4.进行静态库,动态库制作和调用练习,提交相关截图(5分)
5.进行gdb相关练习,至少包含四种断点的设置,提交相关截图(10分)
6.编写makefile(5分)
1.编程基础
以学到的二叉树链表为例:通过vim编辑tree函数并编译:
结果示意图:
二叉链表的C语言实现代码如下
- #include <stdio.h>
- #include <stdlib.h>
- #define TElemType int
- typedef struct BiTNode{
- TElemType data;//数据域
- struct BiTNode *lchild,*rchild;//左右孩子指针
- }BiTNode,*BiTree;
- void CreateBiTree(BiTree *T){
- *T=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->data=1;
- (*T)->lchild=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->rchild=NULL;
- (*T)->lchild->data=2;
- (*T)->lchild->lchild=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->lchild->rchild=NULL;
- (*T)->lchild->lchild->data=3;
- (*T)->lchild->lchild->lchild=NULL;
- (*T)->lchild->lchild->rchild=NULL;
- }
- int main() {
- BiTree Tree;
- CreateBiTree(&Tree);
- printf("%d",Tree->lchild->lchild->data);
- return 0;
- }
输出为3
二:2. 建立自己的项目目录,包含自己学号信息,构建项目结构,然后把相应代码和文档放置到正确位置,用tree命令查看项目结构
首先来安装tree函数
使用的代码为sudo snap install tree
安装过程未截图:
:
3.gcc相关练习(ESc, iso, -I等)
截得图:
src存放不是主函数的.c文件
include存放头文件
bin存放最后输出的文件
lib存放所有的.o文件
test存放主函数的.c文件
4.静态库和动态库:程序功能库可以分为三种类型:静态库,共享库和动态加载库。
①:所示,静态函数库在执行程序之前加入目标程序。
②,具有共享库功能的动态库函数(称为共享Linux对象库,.so文件后缀,Windows动态加载Library,File后缀).dll)。
获取MyOD作为一个例子
动态库:
静态库:
5、gdb相关练习,至少包含四种断点的设置
①.断点设置:
②.临时断点:
③。断点调试:
Makefile
关于makefile的过程在博客https://www.cnblogs.com/zhaoziyu/p/15334538.html已写到