gpt4 book ai didi

c++ - 重新定义符号的算法如何工作?

转载 作者:太空狗 更新时间:2023-10-29 20:19:35 25 4
gpt4 key购买 nike

C++允许程序员重新定义符号的方式

#define A 0

但是这些重新定义的符号在彼此上下文中使用时以及与算术一起使用时的行为方式是不寻常的,因为这些值被视为字符串,而不是文字。

我对这个算术使用的逻辑感到困惑,并希望得到它如何工作的解释。我已经进行了多次测试,试图通过使用不同的值来了解它是如何工作的,但它仍然让我感到困惑。

示例 1:

#define A 0
#define B A+1
#define C 1-B

cout << C;

示例 2:

#define ALPHA 2-1
#define BETA ALPHA * 2

cout << BETA;

示例1:预期输出为0,实际输出为2例子2:预期输出为2,实际输出为0

谁能解释一下这是如何工作的?

最佳答案

宏是文本替换。以下几行显示了预处理器如何逐步替换文本:

cout << C;
cout << 1-B;
cout << 1-A+1;
cout << 1-0+1;

cout << BETA;
cout << ALPHA * 2;
cout << 2-1 * 2;

关于c++ - 重新定义符号的算法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com