tft每日頭條

 > 生活

 > gcc編譯格式

gcc編譯格式

生活 更新时间:2024-10-06 02:52:21

一、main()函數種類:main函數标準類型

無參:int main(void) { return 0; }

有參:int main(int argc, *argv[]) { return 0; }

main()函數其他基本類型

//都能正常運行,但是不是main()的标準語句

void main(int argc, char *argv[]);

void main(void);

int main();

int main(void);

main();

main(int argc, *argv[]);

二、gcc編譯四步驟

源文件

gcc編譯格式(gcc預處理及printf格式化輸出)1

預處理

參數:-E生成的文件:hello.i 預處理文件使用命令:gcc -E hello.c -o hello.i工具:預處理器(包含在gcc編譯集合工具中完成的工作:1、頭文件展開—展開stdio.h文件内容和源碼在一起,放在hello.i中。并且不檢測語法錯誤,可以在任何階段展開文件。

宏定義替換

#include <stdio.h>//宏定義#define PI 23.123int main(void){ printf("Hello! My programmer C \n"); //使用宏 printf("PI = %f\n", PI); return 0;}

将宏名,替換成宏值。#define PI 23.123 (define:創建宏,PI:宏名,23.123:宏值 )

替換注解:把注解替換成空行

展開條件編譯—根據條件展開代碼

#include <stdio.h>//宏定義#define PI 23.123 //定義與否,直接決定了下面的-------longcm是否打印int main(void){ printf("Hello! My programmer C \n"); //使用條件編譯命令是,如果定義PI,那麼就打印---------longcm,是否不打印#ifdef PI printf("-----------longcm\n");#endif return 0;}

編譯

參數:——S生成的文件:gcc -S hello.i -o hello.s工具:編譯器(包含在gcc 編譯集合工具中)完成的工作:1、逐行檢查語句錯誤。(重點)——編譯過程整個gcc編譯四步驟中,最耗時。2、将c程序翻譯成彙編指令,得到 .S 彙編文件

彙編

參數:——c生成的文件:hello.o 目标文件使用命令:gcc -c hello.s -o hell.o工具:編譯器完成的工作:翻譯将彙編指令翻譯成對應的二進制指令

鍊接

參數:——無生成的文件:hello.exe可執行文件使用命令:gcc -c hello.o -o hell.exe工具:鍊接器完成的工作:庫引入、合并多目标文件、合并啟動例程

printf格式化輸出in

#include <stdio.h>#define PI 23.123 int main(void){ int a = 20; printf("%d\n",a);//%d格式匹配符,匹配整數 printf("a= %d\n", a); printf("PI =%f\n", PI); printf("%f\n", 23.12343); int b = 30; printf("%d %d =%d\n", a,b , a b); printf("%d %d \n", 5,8, 7 8 ); return 0;}

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved