本次案例使用如下代碼進(jìn)行測(cè)試
#include <stdio.h>
int add_range(int low, int high){
int i;
int sum;
for(i = low; i <= high; i++){
sum = sum + i;
}
return sum;
}
int main(){
int result[100];
result[0] = add_range(1, 10);
result[1] = add_range(1, 100);
printf("result[0] = %d\nresult[1] = %d\n", result[0], result[1]);
return 0;
}
gcc的基本用法
gcc[options][filenames]
當(dāng)不使用任何選項(xiàng)的時(shí)候編譯c代碼,將產(chǎn)生一個(gè)a.out可執(zhí)行文件,如下

image.png
運(yùn)行a.out進(jìn)行查看

image.png
也可以為編譯后的文件指定一個(gè)文件名,如下產(chǎn)生test可執(zhí)行文件

image.png
運(yùn)行test查看

image.png
-o 后面必須跟上一個(gè)文件名,如 -o outline
1、預(yù)處理階段
使用-E選項(xiàng),對(duì)輸入文件只做預(yù)處理不編譯。當(dāng)使用這個(gè)選項(xiàng)時(shí),預(yù)處理器的輸出被送到標(biāo)準(zhǔn)輸出而不是存儲(chǔ)到文件。如果想將預(yù)處理的輸出存儲(chǔ)到文件,可結(jié)合-o選項(xiàng)使用,使用如下,less指令是查看 test.i文件

image.png
2、編譯階段
使用-S進(jìn)行編譯,如下,產(chǎn)生.i為后綴的編譯文件

image.png
3、匯編階段
使用-c進(jìn)行編譯如下,將C源文件或者匯編語言文件編譯成可重定向的目標(biāo)文件(二進(jìn)制形式),其默認(rèn)后綴為.o。

image.png
4、鏈接階段
可將不同的可重定向文件合并在一起,生成可執(zhí)行文件
這里使用-c選項(xiàng)輸出到成可執(zhí)行文件,如下

image.png
5、執(zhí)行階段
然后就可以執(zhí)行可執(zhí)行文件了,如下

image.png