C语言零基础教程之预处理和宏定义篇

开发 后端
在C语言中,预处理指令是在实际源代码编译之前执行的步骤。它不是编译的一部分。C语言中的预处理程序指令用于定义和替换文本中的标记,还用于将其他文件的内容插入源文件。

[[380968]]

 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语言有预定义的宏

它们如下所示...

  1. __ DATE __:当前日期,
  2. __ TIME __:当前时间
  3. __ FILE __:这包含当前文件名。
  4. __ LINE __:包含当前行号。
  5. __ STDC __:编译器是ANSI,值为1。

如下测试代码:


尾言

作业:使用宏,实现宏链表。

哪里有什么老天的眷顾,所谓的幸运和成功都源自你自身的努力和付出。请记住,你现在多走的每一步都在拉开着你和别人的差距。要做,就做生活的强者。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2021-07-16 07:21:45

C++可调用对象std::functi

2021-04-25 08:11:57

C语言常量与变量标识符命名规范

2021-05-07 09:52:29

C语言运算符表达式

2017-07-18 14:40:05

大数据数据可视化

2020-04-09 14:02:33

NginxHttps前端

2021-04-13 08:42:29

C语言数据类型转换自动类型转换

2017-07-18 10:14:23

OracleMerge into教程

2023-10-04 00:10:00

预处理宏定义

2016-08-31 14:01:31

MySQL存储数据库

2020-09-30 14:04:25

C++运算符重载

2009-06-22 09:23:18

事件监听器

2021-02-21 12:09:32

C 语言基础语法

2021-02-20 06:13:18

C 语言C++

2011-06-21 10:00:21

预处理指令

2021-02-11 08:25:17

C 语言C++ 基础

2021-02-16 10:57:34

C++ C 语言windows

2016-12-15 13:47:29

C语言预处理命令

2009-07-24 09:20:15

数组实例

2021-02-08 20:25:12

C 语言C++Linux

2011-04-15 09:20:56

ASP.NET MVC
点赞
收藏

51CTO技术栈公众号