2025_1_12_Makefile_进度条
1.Make的用法
make的用法在我们需要使用编译的时候又不想重新写什么gcc什么的时候大显身手.
比如
这段代码是什么意思呢?
这段代码的意思就是把main.c 和 Progressbar.c文件 编译成一个名为 ProGress 的可执行文件
当生成了这个可执行文件之后,我们只需要./就可以直接执行了.
而 $@ $^的意思则是:
$@把依赖目标展开
$^把依赖列表中的文件展开 全部给gcc 编译
这为我们节省了大量的时间
2.\r
在我们输入的时候,当一行满行的时候,我们就会进行一个换行回车的操作,而这个\r 就是把光标移动到行的开头.
3.进度条
我们既然已经知道了\r的作用,那么我们就可以来模拟实现一下进度条了.
大致原理就是每+1,这个光标就移动到前面重新写,然后写多一个,把前面的覆盖掉,以此类推.
然后再加一点细节:
运行效果:
接下来来详细解释一下里面的[%-100s][%3d%%]是干什么用的
首先是这个%100s 这个就是首先预留了100个空格位,然后如果不加-号的话,那么他就是处于一个向右对齐的状态,比如
他的空格就是在这个字符的左侧开始补齐,然后就给人一种从右往左的进度拉满的感觉
而如果加了-号的话,就是从左往右对齐了
而%3d就是预留三个字符的位置,%%就是打印%,因为他单独一个%是具有特殊的意义的,跟\\这个一样.