当前位置: 首页 > 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/news/304842.html

相关文章:

  • 如何将自己的项目发布到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机制
  • JSP经典设计模式流程分析:JSP+JavaBean设计模式+MVC设计模式
  • 串口接收不到数据之电阻虚焊bug分析思路
  • springboot和springcloud区别
  • 解锁定位服务:Flutter应用中的高德地图定位
  • Oracle(126)如何使用闪回表(Flashback Table)?
  • mac电脑打不开rar文件怎么办 rar文件怎么转换成zip并打开
  • 【主机入侵检测】Wazuh规则详解
  • 自定义EPICS在LabVIEW中的测试
  • [实践应用] 深度学习之损失函数
  • 远超想象的复杂