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语言实现代码如下

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TElemType int
  4.  
  5. typedef struct BiTNode{
  6. TElemType data;//数据域
  7. struct BiTNode *lchild,*rchild;//左右孩子指针
  8. }BiTNode,*BiTree;
  9.  
  10. void CreateBiTree(BiTree *T){
  11. *T=(BiTNode*)malloc(sizeof(BiTNode));
  12. (*T)->data=1;
  13. (*T)->lchild=(BiTNode*)malloc(sizeof(BiTNode));
  14. (*T)->rchild=NULL;
  15. (*T)->lchild->data=2;
  16. (*T)->lchild->lchild=(BiTNode*)malloc(sizeof(BiTNode));
  17. (*T)->lchild->rchild=NULL;
  18. (*T)->lchild->lchild->data=3;
  19. (*T)->lchild->lchild->lchild=NULL;
  20. (*T)->lchild->lchild->rchild=NULL;
  21. }
  22. int main() {
  23. BiTree Tree;
  24. CreateBiTree(&Tree);
  25. printf("%d",Tree->lchild->lchild->data);
  26. return 0;
  27. }

输出为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已写到

posted @ 2021-09-26 21:40  zzy188  阅读(31)  评论(0编辑  收藏  举报