一、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编译四步骤
源文件
预处理
参数:-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;}
,