一、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.123

int 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;
}