C语言预处理
在C语言中,预处理指令是在实际源代码编译之前执行的步骤。它不是编译的一部分。C语言中的预处理程序指令用于定义和替换文本中的标记,还用于将其他文件的内容插入源文件。
当我们尝试编译程序时,先执行预处理程序命令,然后再编译程序。
C语言宏定义
#define
用于在C编程语言中创建符号常量(称为宏)。此预处理器命令也可以与参数化宏一起使用。
案例程序如下:
带语句的宏以及多行宏的编写
C语言销毁宏定义
#undef
用于销毁已经使用#define创建的宏。如下测试代码:
C语言宏判断
#ifdef
如果已定义宏,则#ifdef返回TRUE;如果未定义宏,则返回FALSE。
#ifndef
如果未定义指定的宏,则#ifndef返回TRUE,否则返回FALSE。
#endif
和#ifdef与#endif成对使用
如下测试代码:
条件编译
#if
#if使用指定宏的值进行条件编译。
#else
#else是#if的替代方法。
#elif
#elif是#else,在一条语句中后接#if。
#endif
#endif用于终止预处理器条件宏。
测试案例如下:
注意点:
预处理是在编译期完成的,所以在处理变量的时候一定要注意,如下测试代码:
其他
#include
#include用于将特定的头文件插入C程序。
#error
#error用于在stderr上打印错误消息。
#pragma
#pragma用于向编译器发出特殊命令。
如:包含静态库资源,内存对齐方式。
C语言有预定义的宏
它们如下所示...
如下测试代码:
尾言
作业:使用宏,实现宏链表。
哪里有什么老天的眷顾,所谓的幸运和成功都源自你自身的努力和付出。请记住,你现在多走的每一步都在拉开着你和别人的差距。要做,就做生活的强者。
本文转载自公众号读芯术(ID:AI_Discovery)。 这一刻你正在应对什么挑战?这位前...
溢价 域名 的续费价格如何?通常来说,因为溢价域名的价值高于普通域名,所以溢...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
背景 我们知道 如果在Kubernetes中支持GPU设备调度 需要做如下的工作 节点上安装...
本文转载自微信公众号「bugstack虫洞栈」,作者小傅哥 。转载本文请联系bugstack...
基本介绍 给定 n 个权值作为 n 个叶子节点,构造一颗二叉树,若该树的带权路径长...
在Python开发过程中,我们难免会遇到多重条件判断的情况的情况,此时除了用很多...
TIOBE 公布了 2021 年 3 月的编程语言排行榜。 本月 TIOBE 指数没有什么有趣的变...
前言 统计科学家使用交互式的统计工具(比如R)来回答数据中的问题,获得全景的认...
近几年,互联网行业蓬勃发展,在互联网浪潮的冲击下,互联网创业已成为一种比较...