avatar

就是Van

学与不学反复横跳

  • 首页
  • 子域
  • 分类
  • 标签
  • 归档
  • 关于
首页 C语言:宏
文章

C语言:宏

发表于 2022/09/22 更新于 2024/01/25
作者 2 分钟阅读

虽然在较为现代的编程语言中,宏是个很少见的概念,C++虽然兼容C语法而保留了宏的概念,但也并不提倡使用宏。并且宏也是导致种种bug和难以理解的代码的常见根源之一。尽管如此,宏在C语言中的作用却是无可替代的,作为C程序员只有理解了宏,才能正确的使用宏,真正了解代码中各类宏的含义,同时避免陷入各类宏陷阱当中。

宏的作用和处理时间

首先必须明白,宏的核心作用是给代码段以名字,然后用代码段去替代后续代码中名字出现的地方。

因此宏的实质就是文本替换,其操作由预处理器执行,在预处理处理注释之后。编译器的作用时间在预处理器之后,因此编译错误都是在宏展开后再进行检测的。

宏的两种类型

宏有两者类型:不带参数的宏和带参数的宏。不带参数的宏其性质多类似于对象,而带参数的宏其性质多类似于函数。

既然函数可以不带参数,因此也有部分不带参数的宏性质更类似于函数。

不带参数的宏

不带参数的宏其性质多类似于对象。

带参数的宏

字符串化

陷阱

嵌套宏

Language, C
c语言 编程
本文由作者按照 CC BY 4.0 进行授权
分享

最近更新

  • Python中的对象
  • Go:函数
  • C语言:宏
  • DST MOD
  • Go Language With C
外部链接
  • 996.icu

文章内容

相关文章

2022/09/07

Go:Hello, 世界"

hello, world 按照惯例,我们从“hello, world”程序开始,创建helloworld.go文件如下: package main import "fmt" func main() { fmt.Println("Hello, 世界") } go run和go build 输入如下命令: go run hellworld 将会输出“Hello, 世界...

2022/09/12

Python内存

小整数对象池和大整数对象池 Python的解释机制和内存 PyFunctionObject

2022/09/14

Python中的对象

引言 对象是Python 中对数据的抽象。Python程序中的所有数据都是由对象或对象间关系来表示的。 Python中,一切皆对象。 本文基于Python 3.10。 对象的组成 在Python中,任何对象都有各自的标识号、类型和值。 标识号(identity) 一个对象被创建后,其标识号就绝不会改变。通过id()函数可以返回代表对象标识号的整数,is运算符可以用于判断两个对象...

Go:函数

DST MOD

© 2024 Gjq. 保留部分权利。

本站采用 Jekyll 主题 Chirpy

热门标签

编程 learn go hadoop python 大数据 cgo c语言 dst echo

发现新版本的内容。