当前位置: 首页 > article >正文

打印自身的程序

    什么是“打印自身的程序”?即一个程序运行后,将程序本身的代码内容输出(其格式与我们编写的代码一致)。这类程序统称为“Quine”,以哲学家Willard van Orman Quine (1908-2000)命名。该类程序有个不成文的约定:程序不能接收I/O操作(输入或读文件等),空白的程序也不算。

    下面是一个由Vlad Taeerov和Rashit Fakhreyev用C语言写的最简短程序(仅包含64个字符):

main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}

    该例在《高效程序的奥秘》(Henry S. Warren, Jr. Hacker's Delight)一书的前言注脚里有提及,将其编译时会有警告,但运行后仍是原样输出,而网上也有另一种形式避免编译警告:    

#include <stdio.h>

char*s="#include <stdio.h>%c char*s=%c%s%c;main(){printf(s,10,34,s,34,10);}%c";main(){printf(s,

http://www.kler.cn/a/304842.html

相关文章:

  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • ctfshow-web入门-SSTI(web361-web368)上
  • Springboot 日志处理(非常详细)
  • VMware虚拟机安装Win7专业版保姆级教程(附镜像包)
  • 如何将自己的项目发布到Maven中央仓库
  • Java面试篇基础部分-Java内部类介绍
  • ruby和python哪个好学
  • 【C++知识扫盲】------C++ 中的引用入门
  • java项目之疫情下图书馆管理系统源码(springboot)
  • 【Canvas与表盘】蓝边黑底简约表盘
  • 前端-CDN的理解及CDN一些使用平台
  • Qt 实战(10)模型视图 | 10.3、模型数据索引
  • 【网络安全】漏洞挖掘:文件上传实现Webshell
  • Qt+FFmpeg开发视频播放器笔记(三):音视频流解析封装
  • 如何制作一个自己的外卖会员卡小程序?
  • 【AutoX.js】选择器 UiSelector - 查找包名
  • 基于Kubernetes部署Spark:spark on kubernetes
  • yaml配置文件(SpringBoot学习4)
  • Qt 实现自定义截图工具
  • 【Android】【Bug】Activity全屏(保留底部按钮)被打断变成非全屏了
  • 基于SpringBoot的扶贫助农管理系统
  • IDEA中集成Git及Github
  • nordic芯片 flash加密 防止被抄板
  • 安卓14剖析SystemUI的ShadeLogger/LogBuffer日志动态控制输出dumpsy机制