一.进度条都是我们很熟悉的东西,比如下载东西时就会有进度条,打开虚拟机时也有进度条等等。但是进度条是如何用代码实现的?下面我们就来看看如何实现进度条
代码如下:
运行结果如下:
二.汇编指令的编译过程
通常在windows下,我们在VC或VS下进行程序的编辑与运行,往往不会想到程序到底是如何运行的,其实它并非我们想的那么简单,而是通过 预处理阶段,编译阶段
汇编阶段,连接阶段,所以也是比较复杂的。下面我们就看看如何在Linux下运用汇编指令进行编译以及运行程序。
test1.c文件:
#include<stdio.h>
int main()
{
My_printf();
return 0;
}
test2.c文件:
#include<stdio.h>
My_printf()
{
printf("hello,world\n");
}
但是我们如何才能运行该程序呢?首先我们先建立一个makefile文件,然后写明依赖关系即可。
下面就为该依赖关系:
首先make一下指令,然后运行程序。既./test
结果如下:
下面我们就通过这张图来了解程序是如何编译和运行的。
源文件(.c)——汇编文件(.S)——目标文件(.o)——可执行文件(*.hello)
预处理---编译---汇编---链接
1.预处理阶段 主要完成了头文件及宏的替换…(.c文件生成.i文件) gcc -E hello.c -o hello.i
2.编译阶段 源代码到汇编代码的转换,输出汇编代码(.i文件生成.s文件) gcc -S hello.i -o hello.s
3.汇编阶段 是由汇编语言生成机器语言并输出目标文件(.s文件生成.o文件) gcc -c hello.s -o hello.o
4.链接阶段 将以上生成的文件生成一个可执行的程序 gcc -O (hello.i/hello.s/hello.o) -o hello
-o, 指定输出文件名,可以配合以上三种标签使用。
-o 参数可以被省略,这种情况下编译器将使用默认名称输出.无标签情况会生成名为a.out的可执行文件。
gcc -O (hello.i/hello.s/hello.o) -o hello
-O(大写的字母O),编译器对代码进行自动优化编译,输出效率更高的可执行文件。
-O 后面还可以跟上数字指定优化级别,如:gcc -O2 source_file.c数字越大,越加优化。