《C语言深度剖析》第三章 预处理详解 p2(完结) C语言从入门到入土(进阶篇)(一)

简介: 本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!

预处理


1. 条件编译


1.1 条件编译如何使用?


首先我们先来了解什么是宏定义,什么是宏真假:


125.png

首先我们先来了解什么是宏定义,什么是宏真假:

126.png


1.1.2. #define #ifdef


例一:


127.png128.png


例二:

0.png

PS:ifndef是相反的,就是没有定义则表达式为真。


1.1.3. #ifdef #else


例一:


1.png

条件编译:代码裁剪的工具!


例二:


2.png

#if 检测的不止是宏有没有定义,而且要看宏的真假,真才执行#if下面的表达式。

3.png

4.png

当然我们发现这个如果宏定义为空会报错没有定义会走#else下面的表达式。


例三:

5.png


6.png


VS也可以在预处理时自己输入:

7.png

多条件的情况

8.png

9.png

当然也可以不用 ==  也可以用 >  和 <


1.1.4. #ifdefined()



10.png

if defined()  和 ifdef 是一样的功能,判断也是判断宏有没有被定义。


下面是模拟 ifndef,但都是#endif 结束。124.png

相关文章
|
编译器 C语言
C语言--预处理详解(1)
【10月更文挑战第3天】
205 4
|
编译器 Linux C语言
C语言--预处理详解(3)
【10月更文挑战第3天】
275 1
|
编译器 Linux C语言
【C语言篇】编译和链接以及预处理介绍(下篇)
【C语言篇】编译和链接以及预处理介绍(下篇)
235 1
【C语言篇】编译和链接以及预处理介绍(下篇)
|
C语言
【c语言】你绝对没见过的预处理技巧
本文介绍了C语言中预处理(预编译)的相关知识和指令,包括预定义符号、`#define`定义常量和宏、宏与函数的对比、`#`和`##`操作符、`#undef`撤销宏定义、条件编译以及头文件的包含方式。通过具体示例详细解释了各指令的使用方法和注意事项,帮助读者更好地理解和应用预处理技术。
390 2
|
C语言
【C语言的完结】:最后的测试题
【C语言的完结】:最后的测试题
180 3
|
C语言
C语言--预处理详解(2)
【10月更文挑战第3天】
178 2
|
编译器 C语言
C语言预处理详解
C语言预处理详解
|
存储 C语言
【C语言篇】编译和链接以及预处理介绍(上篇)2
【C语言篇】编译和链接以及预处理介绍(上篇)
197 0
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
909 23
|
9月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
1506 0