下载免费网络软件,成都网站seo报价,网站内容收录,wordpress自定义函数在哪里一.GCC是什么#xff1f;
GCC是用于编译C语言和其它语言的开源软件。
全称是 GNU Compiler Collection#xff0c;意思是GNU编译器集和。
支持多种操作系统和硬件平台。二.GCC的作用
GCC的作用是将源码转换为可执行的文件#xff0c;使之可以在计算机上运行。三.GCC编译c文…一.GCC是什么
GCC是用于编译C语言和其它语言的开源软件。
全称是 GNU Compiler Collection意思是GNU编译器集和。
支持多种操作系统和硬件平台。二.GCC的作用
GCC的作用是将源码转换为可执行的文件使之可以在计算机上运行。三.GCC编译c文件的流程
预处理编译汇编和链接。预处理阶段gcc会处理源代码中的预处理指令如 #include, #define, #ifdef等。将宏宏是什么下面有解释展开将头文件包含进来生成一个.i文件。编译阶段gcc会将.i文件中的C语言代码转换为汇编语言代码进行语法分析、类型检查、优化等操作生成一个 .s 文件。汇编阶段gcc会调用汇编器as将.s文件中的汇编语言代码转换为机器指令生成一个 .o 文件。链接阶段gcc会调用链接器ld将 .o 文件和所需的库文件链接在一起解决外部引用和地址分配等问题生成一个可执行文件。gcc可以一次性完成这四个步骤也可以分步骤完成。一次性完成时只需要在命令行中输入filename.c 是要编译的C语言源代码文件名outputfilename 是生成的可执行文件名。gcc filename.c -o outputfilename分步骤完成时需要使用不同的选项来指定每个步骤。
gcc -E hello.c -o hello.i #预处理
gcc -S hello.i -o hello.s #编译
gcc -c hello.s -o hello.o #汇编
gcc hello.o -o hello #链接参考链接https://blog.csdn.net/m0_57492987/article/details/132590920
补充
宏是什么
宏在C语言中是一段有名称的代码片段使用#define定义。
在预处理阶段会把程序中的宏名替换为对应的代码片段然后才进入编译阶段由编译器进行编译。#define宏定义 #undef取消宏定义 #ifdef判断宏是否定义
无参宏定义
最简单的宏定义时间用指定的标识符来代表代码片段当宏定义有多行时需要在行尾使用\来连接。#define 宏名称 代码片段// 如多行时行尾使用\作为续行符
#define BUFFER_SIZE 1024
#define RANDOM (2.0*(double)rand() / RAND_MAX)
#define NUMBERS 1, \2, \3带参数的宏
“形参列表”是用逗号隔开的多个标识符也可以空表示无参数实参列表中的实参数量必须与宏定义中的形参数量一样多。
#define 宏名称( [形参列表] ) 替换文本
// 如
#define GETCHAR() getc(stdin)
//
#define MAX(a,b) ((a)(b)?(a):(b))参数要用括号括起避免实参为表达式时出错如
#define MULTIPLY(a, b) ((a)*(b))
MULTIPLY(12, 34)会预处理为((12)*(34))若不加括号则会变为12*34意义全变。即使加括号宏在一定情况下还是会产生二义性要避免此类使用如
#define SQUARE(a) ((a)*(a))
SQUARE(a)会预处理为((a)*(a))若a3则结果为3*4。C语言中宏简介https://blog.csdn.net/alwaysrun/article/details/103206443
标识符是什么
变量的名字、常量的名字、类的名字、函数的名字等。如 int a 0; 这个是a就是标识符。标识符不能使用关键字标识符使用字母数字和下划线标识符不能以数字开头只能以字母或者下划线开头标识符区分大小写关键字
int a0; 此时的int就是关键字。