トップページに戻る    前のC++のサンプルへ

Cマガ電脳クラブ(第048回) ソース・ソース

問題

C言語で書かれたあるプログラムソースをコンパイルして実行したところ、
そのプログラムソースそのものが一字一句違わずに画面に表示された。
さて、いったいどんなソースだったのだろうか。なるべく短いソースを考えていただきたい。

ただし、コンパイル後の実行ファイルのみで動作しなければならず、
たとえばそのソースファイルを利用する(読み込んで表示するなど)ことは許されない。


ソース

#include <stdio.h>

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

void main()
{
    printf(str,10,10,34,str,34,10,10,10,10,10,10);
}


実行結果

ソースと同じ


解説

実行時にソースコードそのものを表示するプログラムは、
日本語では不動点プログラム、
英語ではquineと呼ばれます。