Linux C语言编程基础

二叉树编程基础练习

#include "btree.h"
#include "linkqueue.h"
#include "linkstack.h"
btree_pnode create_btree1(void)
{
dataype_bt ch;
btree_pnode new;
scanf("%c",&ch);
if('#'==ch)
{
return NULL;
}
else
{

new=(btree_pnode)malloc(sizeof(btree_node));
if(NULL==new)
{
perror("malloc");
exit(-1);
}
new->data=ch;

new->lchild=create_btree1();

new->rchild=create_btree1();
}
return new;
}

void create_btree(btree_pnode *T)
{
dataype_bt ch;
scanf("%c",&ch);
if('#'==ch)
{
return ;
}
else{

(*T)=(btree_pnode)malloc(sizeof(btree_node));
if(NULL==(*T))
{ perror("malloc");
exit(-1);
}
(*T)->data=ch;

create_btree(&((*T)->lchild));

create_btree(&((*T)->rchild));
}
}

void pre_order(btree_pnode t)
{
if(t!=NULL)
{

printf("%c",t->data);

pre_order(t->lchild);

pre_order(t->rchild);
}
}

项目构建

文件目录树:

gcc相关练习

gcc的ESc和iso


静态库与动态库的调用练习

静态库制作

使用命令gcc src/.c -Iinclude -o lib/.o就可以生成对应.o并放在lib路径中
将所有.o合成一个静态库
ar -rc lib/libmyod.a lib/*.o

创建动态库

可以分为两步:

第一步:生成目标文件,此时要加编译器选项-fPIC。[ps:-fPIC是创建与地质无关的编译程序,是为了能够在多个应用程序间共享]

gcc -fPIC -c hello.c
第二步:生成动态库,此时要加链接器选项-shared。[ps:-shared是指定生成动态链接库]

gcc -shared -o libmyhello.so hello.o
以上两步也可以写成一条指令:

gcc -shared -fPCI -o libmyhello.so hello.c

gdb相关练习

行断点:break+行号

临时断点:tbreak+行号

函数断点:break+函数名

条件断点:break+行号+if+条件

  • 其他步骤
    开始运行:run
    查看变量的值:disp 变量名
    单步执行(进入函数):s
    单步执行(不进入函数):n
    跳出函数:finish
    跳出循环:until

编写makefile

原文地址:https://www.cnblogs.com/1208499954qzone/p/15337476.html