m0_72556823 2023-01-07 00:20 采纳率: 50%

# 有什么办法比较方便的直接替换宏吗？或者看一下这个程序替换宏后的样子？

``````#define R { return
#define P P (
#define L L (
#define T S (v, y, c,
#define C ),
#define X x)
#define F );}

int r, a;
P y, X
R y - ~y << x;
}
Z (X
R r = x % 2 ? 0 : 1 + Z (x / 2 F
L X
R x / 2 >> Z (x F
#define U = S(4,13,-4,
T  t)
{
int
f = L t C
x = r;
R
f - 2 ?
f > 2 ?
f - v ? t - (f > v) * c : y :
P f, P T  L X  C
S (v+2, t  U y C  c, Z (X )))
:
A (T  L X  C
T  Z (X ) F
}
A (y, X
R L y) - 1
? 5 << P y, X
: S (4, x, 4, Z (r) F
#define B (x /= 2) % 2 && (
D (X
{
int
f,
d,
c = 0,
t = 7,
u = 14;
while (x && D (x - 1 C  B 1))
d = L L D (X ) C
f = L r C
x = L r C
c - r || (
L u) || L r) - f ||
B u = S (4, d, 4, r C
t = A (t, d) C
f / 2 & B  c = P d, c C
t  U t C
u  U u) )
C
c && B
t = P
~u & 2 | B
u = 1 << P L c C  u) C
P L c C  t) C
c = r  C
u / 2 & B
c = P t, c C
u  U t C
t = 9 );
R a = P P t, P u, P x, c)) C
a F
}
main ()
R D (D (D (D (D (99)))) F

``````

PS：这是一个在假设无限大内存没有整形上限的情况下，输出一个巨大的数字的程序，这个数字非常大，远远超越想象。所以我想知道生成这个数字的D函数的工作原理

• 写回答

#### 3条回答默认 最新

• 滴水不穿石 2023-01-07 10:07
关注

宏展开大概是这样子吧。标准C必须要有返回类型，我加上int为返回类型。
但是貌似逻辑有问题，运行出错！

``````#include<stdio.h>

int r, a;
int P(y, x)
{
return y - ~y << x;
}

int Z(x)
{
return r = x % 2 ? 0 : 1 + Z(x / 2);
}

int L(x)
{
return x / 2 >> Z(x);
}

int S(v, y, c, t)
{
int
f = L(t),
x = r;
{
return f - 2 ? f > 2 ? f - v ? t - (f > v) * c : y : P(f, P(S(v, y, c, L(x)), S(v + 2, t = S(4,13,-4, y), c, Z(x))))
: A(S(v, y, c, L(x)),
S(v, y, c, Z(x)));
}
}

int A(y, x)
{
return L(y) - 1
? 5 << P(y, x)
: S(4, x, 4, Z(r));
}

int D(x)
{
int
f,
d,
c = 0,
t = 7,
u = 14;
while (x && D(x - 1), (x /= 2) % 2 && ( 1))
d = L ( L ( D (x) ) ),
f = L ( r ),
x = L ( r ),
c - r || (
L ( u) || L ( r) - f ||
(x /= 2) % 2 && ( u = S (4, d, 4, r ),
t = A (t, d) ),
f / 2 & (x /= 2) % 2 && (  c = P ( d, c ),
t  = S(4,13,-4, t ),
u  = S(4,13,-4, u) )
),
c && (x /= 2) % 2 && (
t = P (
~u & 2 | (x /= 2) % 2 && (
u = 1 << P ( L ( c ),  u) ),
P ( L ( c ),  t) ),
c = r  ),
u / 2 & (x /= 2) % 2 && (
c = P ( t, c ),
u  = S(4,13,-4, t ),
t = 9 );
{
return a = P(P(t, P(u, P(x, c))),
a);
}
}
int main()
{
return D(D(D(D(D(99)))));
}

``````
本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

• 系统已结题 1月30日
• 已采纳回答 1月22日
• 创建了问题 1月7日

#### 悬赏问题

• ¥15 pycharm无法启动打开
• ¥15 freertos中断使用队列传输后不能退出
• ¥15 Could not find artifact io.renren:renren-dynamic-datasource:jar:5.0.0
• ¥15 8乘8点阵显示I Love you，要求看下文
• ¥15 uniapp地图组件show-location的方向箭偏差
• ¥15 ntp客户端对时C语言
• ¥15 python视觉识别调用鼠标宏驱动实现鼠标实时移动到目标人物中心，
• ¥15 手机登录公司网站需要人脸识别，UC浏览器提示这样，有人知道解决方法吗
• ¥15 linux命令行中的一个问题
• ¥15 如何让 python 正确发起 http2 请求？