GCC编译器
预处理阶段:
1.gcc - E + 文件名 :预处理文件
2.gcc - o + 文件名 :重命名
gcc -E gcc.c gcc-o gcc.i:生成预处理文件。
vi gcc.i:
作用:展开头文件,宏进行替换。
编译阶段:
gcc - S gcc.i -o gcc.s
作用:检查语法错误。
汇编
链接
GCC常用选项
-I
main.c文件:
file.c文件:
file.h:
把以上三个文件一起进行编译:
把file.h移到include目录里:再次执行发现找不到file.h
解决方法:gcc main.c file.c -I include
条件编译
概念:C语言源程序中的每一行代码都要参加编译。但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译,此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译。
使用:
#include<stdio.h>
#define _DEBUG_
int main()
{
#ifdef _DEBUG_//如果没有定义过_DEBUG_
printf("*******x86*******\n");
#endif _DEBUG_
printf("*****************\n");
return 0;
}
//*******x86*******
//*****************
#include<stdio.h>
int main()
{
#ifndef _DEBUG_//如果没有定义过_DEBUG_
printf("*******x86*******\n");
#else //如果定义过_DEBUG_
printf("*****************\n");
#endif _DEBUG_
return 0;
}
//*******x86*******
//*****************
#include<stdio.h>
#define VALUE 0
int main()
{
#if VALUE
printf("-----------\n");
#else
printf("xxxxxxxxxxx\n");
#endif
return 0;
}
//xxxxxxxxxxx
GCC编译时进行条件编译
把上述的define去掉,怎么实现功能,使用 - D传递参数。
文件名 -D _DEBUG_
文件名 -D VALUE = 1