Day 7:条件编译

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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值