c - C语言中如何用宏将符号转为文字?

标签 c macros

如何将c中的符号更改为单词? (例如将 % 更改为 word mod)

示例代码:

Before:    a = a%2;

After:     a = a mod 2;

最佳答案

谢谢你的提问。因此,要定义宏,请使用以下命令:

#define macro do_this

所以在你的例子中:

#define mod %

#define 实际上创建了一个常量,并且在每次使用宏(在本例中为 mod)的编译过程中,它都会将宏更改为实际的“真实”代码。

这是我创建的一个小示例:

#include <stdio.h>

#define main            int main(void) {
#define func_end        }
#define number          int
#define equals          =
#define mod             %
#define say_number(x)   printf("%d\n", (x));

main
        number a;

        a equals 5;
        a equals a  mod 2;

        say_number(a);
func_end

say_number需要参数x,然后在printf函数中将其用作参数。

有了这个,您可以将符号更改为单词,但在使用这些宏之前,请阅读这篇文章:https://pmihaylov.com/macros-in-c/ ,讲的是如何使用宏以及宏和函数的区别。

我希望这能回答您的问题。

关于c - C语言中如何用宏将符号转为文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778485/

相关文章:

c - 为什么这些构造使用前后递增的未定义行为?

C错误从流套接字读取数据包

macros - LISP 表达式列表

c - 如何限制 printf 小数点后显示的位数?

c - 如何在 C 中连接字符串和整数?

c - 什么是具有副作用的表达式?为什么不应将它们传递给宏?

C++ #define 函数宏

c++ - 宏元编程恐怖

c - 下标值既不是数组,也不是指针,也不是数组索引处的 vector

macros - 如何在 lisp 中编写 'destructive' dolist 宏