アカウント名:
パスワード:
system("sync; sync; sync");でしょ
最近のコンパイラーは賢いので、その程度では機械語を生成しません。
わかっていないのは君だ。
最近のコンパイラは恐ろしく、
printf( "hello world\n" );
と書いても、
puts( "hello world\n" );
というコードがアセンブラレベルでは出てくる。
例:
C:#include <stdio.h> intmain( int argc, char *argv[] ){ printf( "hello world\n" );}
出力結果: gcc (GCC) 3.4.4 .file "afo.c" .def ___main; .scl 2; .type 32; .endef .section .rdata,"dr"LC0: .ascii "hello world\0" .text .p2align 4,,15.globl _main .def _main; .scl 2; .type 32; .endef_main: pushl %ebp movl $16, %eax movl %esp, %ebp subl $8, %esp andl $-16, %esp call __alloca call ___main movl $LC0, (%esp) call _puts leave ret .def _puts; .scl 3; .type 32; .endef
以上を理解したうえで。
system("sync; sync; sync");
と言うコードに対して「あぁ、それは何もしなくてよいのだな。どうせ非同期か同期化なんて、ちゃんと判っているユーザーはいないし」とコンパイラが判断して、何も出力しない、というギャグだ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
sync (スコア:0)
Re: (スコア:1)
system("sync; sync; sync");でしょ
Re:sync (スコア:1, おもしろおかしい)
最近のコンパイラーは賢いので、その程度では機械語を生成しません。
Re:sync (スコア:1)
加えてsystem(3)もsync(1)もわかってないコメントですね。
判っている人には野暮極まりなく、申し訳ないが… (スコア:4, 参考になる)
わかっていないのは君だ。
最近のコンパイラは恐ろしく、
と書いても、
というコードがアセンブラレベルでは出てくる。
例:
以上を理解したうえで。
と言うコードに対して「あぁ、それは何もしなくてよいのだな。どうせ非同期か同期化なんて、ちゃんと判っているユーザーはいないし」とコンパイラが判断して、何も出力しない、というギャグだ。
fjの教祖様
Re:判っている人には野暮極まりなく、申し訳ないが… (スコア:1, おもしろおかしい)
「機械語を生成しない」に釣られてたわけですね。
例に挙げられているprintf()も機械語(正確にはアセンブリですが)を出力しているわけですし。
最適化で消されるとかの表現だったらギャグと理解できたかもですが。
どう釣られてたかというと「元ACさんが
system("sync; sync; sync");
を
asm("sync; sync; sync");
と誤解しているのでは?」と私が誤解してました。もちろんsyncなどという機械語は存在しませんが。
まさかsystem()呼び出しを消してしまう壮大なギャグだとは…。
Re:判っている人には野暮極まりなく、申し訳ないが… (スコア:1)
ではなくて、文字列最後の"¥n"まできちんと消した上でputsに置き換え
ている、つまり最近のコンパイラだったら"sync;sync;sync"の部分まで
見た上で、その部分も書き換えて最適化しかねない、ということでは。
Re: (スコア:0)