c语言预处理的定义与使用

1.预处理理论
源码.c–>(预处理)–>预处理过的.c文件(.i)–>(编译)–>汇编文件.s–>(汇编)–>目标文件.o–>(链接)–>elf可执行文件

2…编译器本生目的是编译源代码,将c的源代码转换成.s的汇编代码。编译器聚集核心功能后。就剥离了一些非核心的功能到预处理器去。

(1)gcc编译时可以给一些参数做一些设置,譬如gcc xx.c -o xx可以指定可执行文件的名称,譬如gcc xx.c -c -o xx.o可以指定之编译不连接,也可以生成.o的目标文件。
(2)gcc -E xx.c -o xx.i可以实现只预处理不编译。一般情况下没必要只预处理不编译,但有时候这种技巧可以帮助我们调debug程序。

#include <stdio.h>

#define Num2
#define Num1 1

int main(void)
{
        int a = 0;
        int b = 0;

        #if (Num1 == 0)
        printf("#if\n");
        a = 111;

        #else
        printf("#else\n");
        a = 222;

        #endif
        printf("a = %d\n",a);
		 
		#ifdef Num1	//如果Num1定义了执行下面内容
        printf("#ifdef\n");
        b = 111;

        #else
        printf("#else\n");
        b = 222;

        #endif
        printf("b = %d\n",b);



        return 0;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值