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、付费专栏及课程。

余额充值