C语言的选择预定义,c语言学习教程1之预定义代码

c语言教程1之预定义代码

大家好,我是爱学编程的小圆子。

上一篇我觉得稀里扒拉的,根本没讲到重点,所以我又来详细讲一次啦。

前言

一些新手看到一些大佬的代码,里面可能第一句就是#include<....>,很多新手看不懂是什么,可能还有一些#define #ifdef #if #endif #else ....等等像这种带#符号的代码这些代码在c标准里面都叫预定义代码。

那什么是预定义代码呢?

预定义代码就是在预编译阶段编译的代码,至于编译过程限于篇幅我就不赘述了

首先我们来看一个例子

-----我是分界线-----

#define A = 10

int a = A + A;

-----我是分界线-----

编译器会看成

-----我是分界线-----

int a = 10 + 10;

-----我是分界线-----

#define被略掉了

那有的时候用预编译代码是很好的,有的时候他可以省略可执行文件所占用的内存

就比如

-----我是分界线-----

#ifdef MAKE

printf("MAKE is define.");

#else

printf("MAKE isn't define.");

#endif

-----我是分界线-----

如果定义了MAKE符号那编译器就会编译第一个printf,如果没有定义MAKE符号就会编译第二个printf。

划重点!:#define是定义符号 #ifdef是if is define也就是判断有没有定义这个符号#ifndef是#ifdef的反义代码 #elif 和 else if(...)同义但是#elif就是编译时判断else if()是运行时判断#else参考上面

学习

#define AA 1

#define BB 2

int main()

{

int a = AA + BB;

}

按照上面的原理,编译器看到的就是

int main()

{

int a = 1 + 2;

}

来个更深奥点的:

//default.h

#ifndef A

#defif B

#define b

#else

#define bb

#endif //#defif B

#define bbb

#else

#define aaaa

#endif //#ifndef A

//default.c

int main()

{

#define A

#include"default.h"

}

编译的时候就会:

第一步:

int main()

{

#define A

#ifndef A

#defif B

#define b

#else

#define bb

#endif

#define bbb

#else

#define aaaa

#endif

}

第二步:

int main()

{

#define aaaa

}

那我再弄一个:

int main()

{

#define B

#include"default.h"

}

第一步:

int main()

{

#define B

#ifndef A

#defif B

#define b

#else

#define bb

#endif

#define aaa

#else

#define aaaa

#endif

}

第二步:

int main()

{

#define b

#define aaa

}

有什么疑惑可以在评论区跟我说,我会尽快回答

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值