335 字
2 分钟
破译一段抽象代码
已知这是 C 语言,缩进规范,并使用了 stdio.h 库,看起来很让人头疼。

某一天,我在某个群里发了如下代码:

༃ ༊ ༆ 60
༒ ༖ ༀ ༕ ༿
    ༽ ༀ ༊ ༇ 60 ༕ ༿
        ༻ ༀ "文本A" ༕ ྅
    ༗ ྈ ༿
        ༻ ༀ "文本B" ༕ ྅

0

已知这是 C 语言,缩进规范,并使用了 stdio.h 库,看起来很让人头疼。

找到 main 函数#

C 语言必须要有 main 函数。

从第 1 行开始看,main 函数里面不能直接出现 60 的,所以这不是 main 函数。

2 行开始就有缩进了,并且缩进最后有个 0,可以猜测为 return 0; 所以大概率是 int 类型的 main 函数。

༃ ༊ ༆ 60;
int main(){
   ༽ (༊ ༇ 60){
        ༻ ("文本A");
    } ྈ{
        ༻ ("文本B");
    }
    return 0;
}

破译结构性语句#

从第 3 行到第 7 行,能看到一处结构。

这一看就是判断结构,所以:

༃ ༊ ༆ 60;
int main(){
    if (༊ ༇ 60){
        ༻ ("文本A");
    }else{
        ༻ ("文本B");
    }
    return 0;
}

破译其它语句#

首先,在 main 函数外面的语句也只有赋值了,stdio.h 库的 printf 也是最简便的函数,所以:

༃ ༊ = 60;
int main(){
    if (༊ ༇ 60){
        printf("文本A");
    }else{
        printf("文本B");
    }
    return 0;
}

无法破译的东西#

  • :一个数据类型。
  • :一个变量名。
  • :一个判断运算符
破译一段抽象代码
https://pinpe.top/posts/unknown-code/
作者
Pinpe
发布于
2024-02-19
许可协议
CC BY-NC-SA 4.0

如果此时间过长,文中的信息可能会失去时效性,甚至不再准确。