トップページ⇒tech
984コメント265KB

今までに見たソースコードで一番感動したのは

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001七誌NGNG
何ですか?
0002なんでしょうか?&rlo;んーぼあNGNG

0003rubyist@カラアゲうまうまNGNG
Ruby!
0004デフォルトの名無しさんNGNG
Hello
0005デフォルトの名無しさんNGNG
NetBSDのカーネル
0006デフォルトの名無しさんNGNG

                     |
       -―-          |
     〃      ヽ     .|
     i   ノノノ))) ))    | ソースコードが好きなんですか?
.    i i ( 'l_] l]〈リノ    .<
     ヽヽ >  />      \_____
     Y/ヽ!ェl〉        /ヽ/ヽ
      !! l卯 l         / // /
      i ll8| !       / // /
.       l l「| l       , ´-‐ ‐- ヽ
        /!_」l|_j、    {   l ,,  } ぅん
.      / /゙´l"ヽ >   ゝ. ‐  ノ
     'ーr‐ r r ´       l !
.       l  l. |           | |
.       |  ! |           l. |

       -―-
     〃      ヽ
     i   ノノノ))) ))   / ̄ ̄ ̄ ̄ ̄
.    i i ( 'l_] l]〈リノ < でも、ソースコード書いてるところ見たこと無いです。
     ヽヽ > n/>    \_____
     Y/ヽ!ェl〉        /ヽ/ヽ
      !! l卯 l         / // /
      i ll8| !       / // /
.       l l「| l       , ´-‐ ‐- ヽ
        /!_」l|_j、    {   l   U } ……
.      / /゙´l"ヽ >   ゝ. っ  ノ
     'ーr‐ r r ´     ⊂ニl !
.       l  l. |        | |
.       |  ! |        l. |
0007なんでしょうか?lo;んーぼあ#NGNG
    
0008デフォルトの名無しさんNGNG
新メモリ最適化ツール
0009デフォルトの名無しさんNGNG
凄いでかいhallo worldのソース。
あらゆることが考慮してあるやつ。
0010デフォルトの名無しさんNGNG
>>9
詳細キボン
0011デフォルトの名無しさんNGNG
hello
0012デフォルトの名無しさんNGNG
>>8
ソースコード見たんだ?
本人?
0013デフォルトの名無しさんNGNG
#include <stdio.h>
#include <process.h>
#include <string.h>

#ifndef NULL
#define NULL 0
#endif

int main(int ArgumentNum,char *ArgumentsStrings[])
{
  if (ArgumentNum >= 1){
    char *put_err = "引数に意味はありません";
    puts(put_err);
  }

  if (printf("Hello World !") != strlen("Hello World !")){
    puts("システムエラー");
    exit(1);
  }
  exit(0);
}
0014デフォルトの名無しさんNGNG
http://www.gnu.org/software/hello/hello.html
0015デフォルトの名無しさんNGNG
gnu hello だろ。
0016デフォルトの名無しさんNGNG
変数が、全て1文字だった(i,j,kとか)某S氏のソース
ある意味感動した。
0017デフォルトの名無しさんNGNG
% ./src/hello -h
GNU hello, THE greeting printing program.

Usage: ./src/hello [OPTION]

-h, --help display this help and exit
-v, --version display version information and exit

-t, --traditional use traditional greeting format
-n, --next-generation use next-generation greeting format
-m, --mail print your mail

Report bugs to <[email protected]>.

(´-`).。oO(なんで mail 表示なんて機能が。。。)
0018デフォルトの名無しさんNGNG
>>16
読みづらくてかなわんな
俺も1文字変数多用するけど
0019デフォルトの名無しさんNGNG
全部3文字ってソースも見たことあるよ。
ループカウンタもiiiとかになってて面白かったよ。
0020デフォルトの名無しさんNGNG
昔の話やが

; Shift JIS -> JIS
; in/out ax
sjis2jis:
  cmp  al,80h
  adc  al,61h
  jc  sj2j_00
  sub  al,0a2h
sj2j_00:
  rcl  ah,1
  add  ax,1f21h
  and  ah,7fh
  ret
0021デフォルトの名無しさんNGNG
>>19
>ループカウンタもiii
3文字の意味が無いような…

>>20
文字コード変換すか。
SJIStoNECJIS とかもあったよな。
何やってるのか知らんけど、
他人のソース流用して変換したやつを
そのままテキストVRAM に流したら漢字出て感動した。
0022デフォルトの名無しさんNGNG
template<typename H, typename T>
struct Typelist{
typedef H Head;
typedef T Tail;
};

こんなんだっけ。スゲーと思った。
0023デフォルトの名無しさんNGNG
perl -ne 'evel $_;print $@'
0024デフォルトの名無しさんNGNG
perl -ne 'eval $_;print $@;'
0025デフォルトの名無しさんNGNG
$_ と最後の ; はいらないと思われ。
0026デフォルトの名無しさんNGNG
>>20
普通(かどうかわからないけど普段よく見る)JISコードって
エスケープ入ってませんか?
これは漢字判定後の処理って事ですか?
0027デフォルトの名無しさんNGNG
>>12
ソース公開されたんだよ。
http://gochagocha.ribbon.to/tensaku.zip
0028デフォルトの名無しさんNGNG
>>27
基のコード書いたやつはずぶの素人なの?
0029デフォルトの名無しさんNGNG
>>28
詐欺師
0030デフォルトの名無しさんNGNG
>>29
ありがとう。話には聞いてたが…酷いな
0031デフォルトの名無しさんNGNG
#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};void k(){if(m[p]==0)
for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=
p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n";int main(){for(i=
1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++
p)k(),printf("%.2s",&h[m[p]*2]);if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d"
,&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}
0032デフォルトの名無しさんNGNG
main() {printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60;}

エキスパートCプログラミングより
0033初心者NGNG
string source = "abcdefghijklmnopqrstuvwxyz";
const size_t length = source.length();
for (uint i = 0; i < 20; i++)
 cout<<source[rand()%length];

こんな感じの乱数文字列生成
0034デフォルトの名無しさんNGNG
最近のパソコンはキーボードやマウスのコードが
色分けされて間違わないようになってて感動した
0035デフォルトの名無しさんNGNG
>>33
それはa〜zまでの文字コードが順番になっていない文字セットを使ってる環境なの?
それならよく考えてあると思うけど。
0036デフォルトの名無しさんNGNG
ソースじゃないけど、昔、PC6001mk2のROM内で
 push AF
 (A /= 16の処理)
 call Disp1
 pop AF
Disp1:
 and 0Fh
 (画面にAの下位を16進表示)
 ret
って感じのを見たときはちょっと感動したな。
1byteでも削りたかった頃だから。
0037デフォルトの名無しさんNGNG
5年前に書いた自分のソースを見たとき。
よく動いているなー、と感動した。
0038デフォルトの名無しさんNGNG
C言語を256倍使いこなす本に載っていた、「一番汎用性のあるプログラム」。




#include <con>
0039デフォルトの名無しさんNGNG
マジレス。
EDSACのIPL。
0040デフォルトの名無しさんNGNG
>>39
あ、そういう話聞きたい。
なんとなくでいいから理由教えて。
難しいから?trickyだから?
それとも短いとかエレガントだからとか?
0041デフォルトの名無しさんNGNG
はじめて自分でつくったクイックソートは感動した。
何時間も考えて、なんどもソーティングしなおして
やっと動いたときは、童貞捨てたときくらい男になれた
0042デフォルトの名無しさんNGNG
脳内じゃなくて現実でも早く童貞捨てようね
0043デフォルトの名無しさんNGNG
>>37
俺は1ヶ月前書いたのにすらそう感じてるよ。
0044デフォルトの名無しさんNGNG
プレステではじめて三角ポリゴンがでたとき
ああ俺ハッカーだよ今、母ちゃんゴメンな
って思った
0045勉強厨NGNG
>>43
俺も。
0046デフォルトの名無しさんNGNG
オリバーが一番感動したかな?
そのバーコードが今でも忘れられん。
0047デフォルトの名無しさんNGNG
3ヶ月前……って夏休みかよっ!!
0048デフォルトの名無しさんNGNG
>>26
esc入るのは7bitJIS。
0049デフォルトの名無しさんNGNG
; HL = H x E
LD D,0
LD L,D
LD B,8
LOOP:
ADD HL,HL
JR NC,JMP
ADD HL,DE
JMP:
DJNZ LOOP
RET

掛け算命令すらなかったあの頃。
0050デフォルトの名無しさんNGNG
>26
というか、ISO-2022-JPの事か?
0051デフォルトの名無しさんNGNG
while(*s++ = *d++) ;
0052デフォルトの名無しさんNGNG
IPLをダンプするとASCIIでテキストが書かれている。
アセンブルすると、実は自己暗号化を含む複雑なコピープロテクトコードであった。

って話をどっかで聞いたことある。BITだったかなあ。
実物を見たら感動したと思う。
0053デフォルトの名無しさんNGNG
char sakujo_sinaide[5000];

どっからも参照されてないのに、
これを削除して実行してみたらメモリエラー。
0054デフォルトの名無しさんNGNG
char itohc(int i)
{
return "0123456789abcdef"[i];
}
0055デフォルトの名無しさんNGNG
>>53
ワロタ
0056デフォルトの名無しさんNGNG
>>54
感動した
0057デフォルトの名無しさんNGNG
>>53
なんでそうなるか追究しないの?
0058名無しさん@カラアゲうまうまNGNG
どうせその前あたりのバッファのオーバフローだろ。
0059デフォルトの名無しさんNGNG
>>58
禿同。厨がよくやるバグ。
0060デフォルトの名無しさんNGNG
>>51ってどうなるの?
0061デフォルトの名無しさんNGNG
>>60文字列コピーしてるだけかと
0062デフォルトの名無しさんNGNG
>>60
for (p = rootp; p->next; p = p->next);
似たのにこんなのもある
0063デフォルトの名無しさんNGNG
>>13
puts() の戻り値は、見ないのか ?
0064デフォルトの名無しさんNGNG
FORTH 最 高 !!
0065PC98専用ソースコードNGNG
跼
0066デフォルトの名無しさんNGNG
>>53
こういうやつでつか?

char a[5];
char b; // 削除すると何故かエラー
for (i = 0; i <= 5; i++) {
 :
 :
}
0067デフォルトの名無しさんNGNG
感動というか、友達がwindowアプリ作ろうとしてて、なにを思ったか
フレームを継承してそれにメインつけて、そのなかにフレームを生成して
使ってたな・・・
0068デフォルトの名無しさんNGNG
int main( void )
{
 0(0);
 return 0;
}
VC++限定だけど。
どこかでこれが使用通りの動作だと読んだ時には驚いたものだ。。。
(どこで読んだか忘れた。知ってる人いたらおせーて。)
0069デフォルトの名無しさんNGNG
>>68
で、「これが使用通り動作」ってなんなんだよ。

そんな変なプログラムに驚愕してる暇あるなら、国語の勉強からした方がいいぞ。
0070デフォルトの名無しさんNGNG
>>69
そういう寒いツッコミする時は、せめて引用くらい忠実にしたほうがいいよ。
0071デフォルトの名無しさんNGNG
>>31
これに負けた・・・打つ出し脳・・・
007239NGNG
>>40
ああ、このスレまだあったのね。レスを見落としてたわ。ごめそ。

>なんとなくでいいから理由教えて。
>難しいから?trickyだから?
>それとも短いとかエレガントだからとか?

難しくて、trickeyで、短くて、エレガントだから。
いやまぢで。

http://www.dcs.warwick.ac.uk/~edsac/

このへんとかにないかな...仕様書はあるな。
まだ興味があるなら、IPLのコードうぷするよ。
0073デフォルトの名無しさんNGNG
>>72
ぅおー!こんなものが存在していなんてー!
ちょっとアツいです。情報さんくす。
調子にのって、ENIAC Emuがあれば、サイコーですねー!
でもENIACってWired Logic・・・(藁
0074デフォルトの名無しさんNGNG
>>1
「感動」の定義は?

「あまりのヒドさにあきれ果てて言葉が出ない」といったネガティヴな感情も
「感動」のカテゴリに含まれるのでせうか? w
0075デフォルトの名無しさんNGNG
>>74
そんなものを感動したと言うかどうかを常識的に考えればわかるだろ。
0076デフォルトの名無しさんNGNG
わかんねぇだろ。
現にネタしかでてねぇだろ。
0077デフォルトの名無しさんNGNG
>>67 そいつJavaプログラマと思われ、、、
GUIアプリだとメインフレームにmainつけるのはありがち。
0078デフォルトの名無しさんNGNG
IOCCCのプログラム
ttp://www.ioccc.org/
0079デフォルトの名無しさんNGNG
>>52
6809はASCIIの大文字のほとんどが1バイト命令だったから
大文字限定でよければ結構簡単だあった。
小文字ありだとむすかしかったがそれをやったゲームは実在したはず。

8bitパソコン全盛のころはけっこう凝ったプロテクトがいっぱいあった。
OSないから互換性なんかハナから考えることがなかったし。
そのかわりサードパーティのFDドライブだと動かなかったり、、、
0080DNGNG
大昔BASICで
(1=1)が-1を返すと知ったとき。
0081デフォルトの名無しさんNGNG
やっぱtrueは-1だよなぁ。
falseが0として0のnotは-1だもんなぁ。
0082デフォルトの名無しさんNGNG
>>81
ブール代数(?)のスレはないのかな?
0083デフォルトの名無しさんNGNG
Pascal(というかDelphi)で (1=1) が True を返すと知った時。
0084デフォルトの名無しさんNGNG
昔の自分のソースを見ると逆に感心する。
「俺って昔こんな凄いコード書いてたんだ」と。
アルジャーノン程じゃないけど、年とともに俺の脳は退化している。
そろそろ足を洗う時が来たようだ。
0085名無し@沢村NGNG
cout<<"きんたまめめじょぼぼじごんす!!"<<endl;
0086デフォルトの名無しさんNGNG
>>84
おお、同士よ。俺もまったく同じ状況だ。
0087デフォルトの名無しさんNGNG
>>81
0のnot(ビット反転させたもの)が
-1になるかどうかは激しく環境に依存します
0088デフォルトの名無しさんNGNG
>>84
気持ちはわからないでもないけど、落ち込んだり、卑下したりしないでくださいな。
脳の退化は工夫次第で補えますので。
0089デフォルトの名無しさんNGNG
IPの記録はまじでやめてほしい
0090デフォルトの名無しさんNGNG
  |ヘ:::ト;::::::::::::::::::ヽ
  | ヽ;T'、:i'、:::::::::::::゙:,
  |  .r=,ヽ';::::::::::::::!   
  |  l:::::::::i. i!::::::::::::::! なんで、わたしなん?
  |.  ':O::ノ '|:::::::::::::::i
  |    J |:::::::::::::::',    
  |O   J ,.!:::::::::::::::::!
  |,_ _,..イ:::::::::::::::::::::|
  |;;r!~ i`ヽ:::::::::i;::::ハ::!
  |ヽl-// !::/リ !:i リ
  |,.ィ'"   ''"゙! レ゙
'"`'゙}.l.l _,. -‐''  i
-‐''|''T゙!     i
  |. | |      i
0091デフォルトの名無しさんNGNG
自分と違う意見に強引なレッテル張りしてるとマジで詭弁厨が来ますよ。。。w>コピペ君
0092デフォルトの名無しさんNGNG
gnu hello だろ。
0093デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0094デフォルトの名無しさんNGNG
これ

<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y()
{C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/
A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1
if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t
%7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;)
Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X
[i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>
0095デフォルトの名無しさんNGNG
どっかの奴がほぼすべての板のほとんどのスレにこんなのばらまいてます↓
102 名前:IP記録実験 投稿日:03/01/08 20:13 ID:nJ34KBUL []
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0096デフォルトの名無しさんNGNG
yahooのtopにキタ━━━━━━(゚∀゚)━━━━━━!!

http://www.yahoo.co.jp/
0097デフォルトの名無しさんNGNG
>内容証明が届いてから訴状が届くまでの間に消したとしても
それだと、内容証明が届く前に削除しなきゃいけないことにならないかい?(^_^;)
内容証明が届いて、すぐに削除したら、賠償はしなくていい気が。

んだったら、IP取ってない板で、自分で自分を中傷して、
すぐに裁判すれば賠償金が取れるってことになっちゃう、、
0098デフォルトの名無しさんNGNG
>内容証明が届いてから訴状が届くまでの間に消したとしても
それだと、内容証明が届く前に削除しなきゃいけないことにならないかい?(^_^;)
内容証明が届いて、すぐに削除したら、賠償はしなくていい気が。

んだったら、IP取ってない板で、自分で自分を中傷して、
すぐに裁判すれば賠償金が取れるってことになっちゃう、、
0099デフォルトの名無しさんNGNG
>>99
構って君だろ 時間つぶしの燃料だよ
0100デフォルトの名無しさんNGNG
物騒な世の中に・・・
0101デフォルトの名無しさんNGNG
とりあえずこのスレが1000まで行ったら旅立とう、、、

普通の話は出来ないししたくもないからな、、、
0102デフォルトの名無しさんNGNG
!Kubotar Ver2.1.0 (ソース付き)
0103デフォルトの名無しさんNGNG
あけましておめでとっすー。今年もよろしくー。>ALL
0104デフォルトの名無しさんNGNG

   /⌒ヽ 
  /  `_ゝ´)  IP次郎です。 フォー
  |    /   
  | /| |   
  // | |  
 U  .U
0105デフォルトの名無しさんNGNG
竹下景子だろ?
0106デフォルトの名無しさんNGNG
うんこちんこまんこ
うんこちんこまんこ
0107デフォルトの名無しさんNGNG
フシアナをハンドルにしてるハン板の顰蹙コテがいて、
これが2CHにVirus Scriptやらブラクラやらを貼ったことを自慢した揚げ句、
別のコテハンがフシアナして挑発したらポートスキャンを掛け倒したのです。

410 名前: 投稿日:03/01/10 00:08 ID:h/ETIb2F
>401 名前:三毛 ◆MowPntKTsQ :03/01/10 00:04 ID:McoZGeeY
>ウィルススクリプト貼ってケツまくるような野郎が、「公序良俗」とは笑止の限り。

これが事実だったらどーすんの?(whhh
415 名前:三毛 ◆MowPntKTsQ 投稿日:03/01/10 00:15 ID:McoZGeeY
アサピーは、で

>あれは、そもそもスクリプトじゃないし単にノートンが糞だって言うだけの話。

などと言い訳をしておりまつ。
ではどーいう意図でああいうものを貼ったのか、内容をご説明頂きたいものですな。

417 名前:g056137.ppp.asahi-net.or.jp 投稿日:03/01/10 00:16 ID:6BZCtvnU
そんなに怖かった?

で、相手にログとられて晒し上げの上、朝になったらプロバイダにも抗議されてしまう、という。
0108デフォルトの名無しさんNGNG
いや明け方に(略
0109デフォルトの名無しさんNGNG
これは激しくマジレスなんだが、そういう極端な例を除いて、
なお匿名掲示板の特性が生かされる場面ってのが漏れには全然想像がつかない。
0110デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0111デフォルトの名無しさんNGNG
こういう大事なことを一人で勝手に決めるのってどうよ。
みんなで協議して決めるのが普通じゃないの!
0112デフォルトの名無しさんNGNG
やっぱり快速タンはNGワードなど登録せずにぼくのおうえんを励みにしてくれているのですね。
0113デフォルトの名無しさんNGNG
こういう連中も趣味とか買い物とかで便利に使っているかも?
慣れて専門領域に活用、はありうる。
0114デフォルトの名無しさんNGNG
でも、特定する方法が無いね。
0115デフォルトの名無しさんNGNG
356 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 20:23 ID:jWxHxvti
質の低い書きこみを減らすのが趣旨です。

365 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 20:25 ID:jWxHxvti
第3者が見て情報価値の低い書きこみ>「質の低い」

374 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 20:26 ID:jWxHxvti
>書き込みの質があがるんでつか
質の低い書きこみが減って、結果的に質の平均があがるのではないかと、、、

391 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 20:28 ID:jWxHxvti
裁判所or警察経由っすね>アクセスログが渡る場合
後は、羽田タートルのスレッドの中での粘着さん
0116デフォルトの名無しさんNGNG
おう、おめーら。
まあな、今年は俺の年なわけだがどうよ?
っていうかなぁ、俺の毛毟り取るのはまあ、許してやるよ。
メシくわせてもらってるからな。
でもな、紙とか食わせるのはマジで勘弁してくれよ。
俺ァな、山羊じゃねぇんだよ。
あんなひつじの出来そこないと一緒にしないでくれよ。
だって山羊だぜ、山羊。
俺なんか十二星座ってだけじゃなくて干支でもあるんだよな。
だけど、山羊見ろよ、山羊。
黄金聖闘士(ゴールドセイント)止まりだぜ?
あんなのと一緒にしてもらいたかぁーねーよな。
っていうか、俺を殺せるもんならやってみろよ。
俺はいつどこでも誰の挑戦でも受けるぞ?
0117デフォルトの名無しさんNGNG
2chが2chでは無くなるときが来ましたね。
遊び方の解らない馬鹿が増えたから、しかたないのかもしれません。
もう転載しませんので、以後は該当のスレ追っかけてください



27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

こんなところでしょうか。
0118デフォルトの名無しさんNGNG
ここで3人くらいが「大丈夫だよ」と言ったら、それを信用して
そういう書き込みを続けるんですか?
まあご自由にとしか言いようがありませんね。
どうせなら「授業料」を支払うことになる限界がどこにあるか見つけてください。
0119デフォルトの名無しさんNGNG

さ〜よな〜ら、大好きな2ちゃん〜♪

 
0120デフォルトの名無しさんNGNG
誤爆した悪い
0121デフォルトの名無しさんNGNG
2002年2ちゃんねるアニメランキング1位のアニメに・・・・

モナーが出演決定!!!!!!!!!!!!!!!!!!!!!

<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00 
0122デフォルトの名無しさんNGNG
管理者のハードル・・・アメリカの格言で「人は金持ちになると共和党員になる」
2ちゃん型掲示板を運営していけるだけの資金・人材を持つ金持ちは
大企業、国、地方公共団体に進んで敵対し、所謂「基本的人権」を踏みにじる
リスクを背負ってまで運営するだけの根性があるでしょうか?

もし、そういう根性があるとするならば、何らかの明確な目的がある集団、
「ネット総会屋」「ネット政治屋」的な人々くらいでしょう。
0123デフォルトの名無しさんNGNG
皇太子様のAAが好きだから。
0124デフォルトの名無しさんNGNG
はい。トリップやめました。。(オレも で間違えた・・・)
 # ちと煽り過ぎたかなとも反省。

で、質問。
今後起こりうる裁判と切り分ける部分って具体的にはどのヘンなのでしょうか?

0125デフォルトの名無しさんNGNG
4ndってたぶんネタじゃなくて素の馬鹿だと思う
0126山崎渉NGNG
(^^)
0127山崎渉NGNG
(^^)
0128デフォルトの名無しさんNGNG
どうせその前あたりのバッファのオーバフローだろ。
0129デフォルトの名無しさんNGNG
上司の書いたスパゲティー。
仕様書通り動いたのには、呆れるやら驚くやら…

当然1週間後には、書いた本人にも読めなくなっていたが。
0130デフォルトの名無しさんNGNG
私は自分の書いたコードが翌々日くらいには読めなくなってますが何か
0131デフォルトの名無しさんNGNG
よく、仕様書を元にプログラムを作る云々...というが、
オレの上司は仕様書もろくに書けないぞ。誤字脱字は多いし、
論理的な文章でなく、何がなんだか全然わかんネー。

しょうがなく、仕様書をデバッグするわけさ。

---- コーディングしてな。
0132デフォルトの名無しさん NGNG
久しぶりに彼女のディスクを覗いてみた。

JIS → SJIS 文字コード変換プログラムを1文字1文字 BASIC の IF 〜 THEN で
書いたプログラムがついに完成していた。1つのファイルでは行番号が足りず、
メインプログラムと3つのファイルでプログラムを構成してあり、必要に応じて
LOAD する仕組みだ。

IF しか教えなかった俺も悪いとは思うが、こんなプログラムを作った彼女は
すごいと思う。本気で好きになった。

0133デフォルトの名無しさんNGNG
板違いだろ
0134デフォルトの名無しさんNGNG
>>132
すげーな、根性は。
そういう性格ならプログラマ以外のほうが向いてるな、その彼女。
プログラマの適性の第一は 怠け者であること。
第二は、怠ける為に勤勉であること。真性勤勉な人向きの仕事じゃ
ないよな。
0135デフォルトの名無しさんNGNG
>>132
けっこう単純作業の方が簡単に進むらしい。
初心者チームで作ったプログラムはそんなのが多かった。

なおしたい!と思うが、
しかも動いているから手が出せない、というか手を出したらいけないよなぁ。。。
0136この問題の意味を教えてくさいNGNG
各タブを3文字の列>、バックスペース、-で書き換えて→と印字し、
また各バックスペースを同様な文字列で←に書き換えるプログラムを
書け。こうすれば、タブとバックスペースは目で見えるようになる。
0137デフォルトの名無しさんNGNG
>>1
Decoratorパターン
0138デフォルトの名無しさんNGNG
>>136
タブを -> の様に置き換えるってこと?
つかバックスペースって何?
0139136NGNG
プログラミング言語Cの演習1-8です。
0140136NGNG
バックスペースを<-二変換するときはどうすればいいと思いますか?
0141デフォルトの名無しさんNGNG
>>138
> つかバックスペースって何?
\b
0142デフォルトの名無しさんNGNG
あー、\t\b\bを作りたいのね。
0143デフォルトの名無しさんNGNG
死ね死ね死ね死ね・・・の連打
0144デフォルトの名無しさんNGNG
某社製cursesの表示コスト計算関数
0145デフォルトの名無しさんNGNG
AND 0FH ;まァ一応

CP 0AH
CCF
ADC A,30H ;A + '0'
DAA

Aレジスタ下位4ビットの値を表示用のキャラクタに変換するコード。
BCD補正を利用して分岐なしに変換を実現している。
アルファベット部分は大文字に限定されてしまうけど。

MSX-DOSの解説本のサンプルプログラムでさりげなく使われていた。
本題はもちろんDOSの操作に関するものだったと思うが、本題よりも
こっちに感心した。

その後の漏れのプログラムに度々使用されたことは言うまでもあるまい。
0146デフォルトの名無しさんNGNG
漏れは3項演算子をさりげなく自然に使ってるソースにであうといつも感心する。
0147デフォルトの名無しさんNGNG
厨な質問でもうしわけないのですが、みなさんがソースコード読解に
利用してるツールとかってどんなのがありますか?
できればいろんなプラットフォームのが知りたいのですが。
0148デフォルトの名無しさんNGNG
もしVerilogに3項演算子が無かったら死ぬ
0149デフォルトの名無しさんNGNG
>>147
http://sourcenav.sourceforge.net/
0150147NGNG
感謝感激。有難き幸せ。
0151デフォルトの名無しさんNGNG
お前ら何でHaskellのコードが出てこねぇのよ?
たった2行のquicksort
quicksort [] = []
quicksort (x:xs) = quicksort[y | y <- xs, y < x] ++ [x] ++ quicksort[y | y <- xs, y >= x]
0152デフォルトの名無しさんNGNG
文字コード変換プログラムは初心者が作ったとはいえ、もし変換ミスがあれば
大問題だ。仕事によっては役員の責任さえ問われかねない。
そこで例によってコソーリディスクを覗いて全文字について変換結果を出力し、
バグがないか調べた。

案の定、5箇所にミスが見つかったので直しておいた。タイムスタンプも
ちゃんと元に戻してやった。

ひと仕事終えて親ディレクトリを見ると、そこには "Unicord" というディレ
クトリがあった。

一抹の不安は的中した。

なんと、今度は Unicode 版を作っているではないか!そう言えば先日、彼女は
中島靖の本をまじまじと読んでいた。まだ作り始めたばかりのようだ。

そんな彼女を温かく見守りたい。
0153デフォルトの名無しさんNGNG
>>152
おまえが上司なのか同僚なのかしらんが、どちらとしても失格。
0154デフォルトの名無しさんNGNG
>>153
ストーカーかなんかじゃないのか ?
0155デフォルトの名無しさんNGNG
>>152
ヴァカ
0156デフォルトの名無しさんNGNG
久しぶりの良スレハケーン
0157デフォルトの名無しさんNGNG
ユニコードのスペルくらいはちゃんと教えてやれよ。
0158デフォルトの名無しさんNGNG
yunikodo
0159デフォルトの名無しさんNGNG
夕丹子・小戸
0160デフォルトの名無しさんNGNG
いままで「うにコード」と読んでいた
0161デフォルトの名無しさんNGNG
久しぶりの良スレハケーン
0162デフォルトの名無しさんNGNG
フランスで食った、スパゲッティのソースは、うまくて感動したな。
0163デフォルトの名無しさんNGNG
未だにsourceとsauceの違いが分からん奴がいるのか?
0164デフォルトの名無しさんNGNG
>>163
いや、シャレなんだろう、きっと…。
0165デフォルトの名無しさんNGNG
>>164
シャレって、どこで食える。
どんなソース?
0166デフォルトの名無しさんNGNG
こちらと、姉妹スレ関係を、結びました。
http://food3.2ch.net/test/read.cgi/gurume/1045989510/
0167デフォルトの名無しさんNGNG
int compute( int num1, char exp, int num2 )
{
   switch( exp )
   {
     case '+':
       return ( num1 + num2 );
     case '-':
       return ( num1 + num2 );
     case '*':
       return ( num1 + num2 );
     case '/':
       return ( num1 + num2 );
     default:
       return -1;
   }
   return -1;
}
0168デフォルトの名無しさんNGNG
↑まちがい

int compute( int num1, char exp, int num2 )
{
   switch( exp )
   {
     case '+':
       return ( num1 + num2 );
     case '-':
       return ( num1 - num2 );
     case '*':
       return ( num1 * num2 );
     case '/':
       return ( num1 / num2 );
     default:
       return -1;
   }
   return -1;
}
0169デフォルトの名無しさんNGNG
VBの入門書(複数)でそういうの見たことありますよ。
0170169NGNG
まぁ、なんて書籍かって聞かれたら忘れたって答えますが(w
0171デフォルトの名無しさんNGNG
STL。
ひたすらあのコードを追っていった事があるが
発狂しそうになったよ。
0172デフォルトの名無しさんNGNG
>>167-168
逆ポーランド法で簡単な計算機を作る時にたまに使うがな。
0173デフォルトの名無しさんNGNG
BF(BrainFuck)のコード(と、その処理系)には、ワロタ。
ttp://www.muppetlabs.com/~breadbox/bf/

0174デフォルトの名無しさんNGNG
>>167
激しくワラタ
0175デフォルトの名無しさんNGNG
>>168
int answer = compute(1, '/', 0);
0176デフォルトの名無しさんNGNG
>168
エラーコード -1 でいいのか?
0177デフォルトの名無しさんNGNG
shl eax, 7
lea eax, [eax * 4 + eax]

eax を 640倍
0178デフォルトの名無しさんNGNG
,>,>,>,>,>,>,>,>,<<+++<<<<<<.>.>.>.>.>.>.>.>.
brainfuck
brainfxck
0179デフォルトの名無しさんNGNG
スタックポインタ使ってメモリフィルしてたのはちょっとだけ感動した
それもループ展開。
0180デフォルトの名無しさんNGNG
winユーザだったが、ドライブにあるmp3ファイルを全部検索してプレイリスト化するバッチファイルを作った香具師がいて、
さぞかし面倒なコードが並んでるかと思って見せてもらったら、
dir /b /s /o:n *.mp3 > index.m3u
この1行だけだった。まじ感動した。
0181デフォルトの名無しさんNGNG
>>179

メモリ操作が一番速いのは昔っから sp操作ですよ。
0182デフォルトの名無しさんNGNG
>>167-168
誰かeVal関数の実装方法を教えてください。
(Case文の巣窟??)
0183デフォルトの名無しさんNGNG
素朴な実装では関数ポインタの巣窟かと。
0184例えばCならNGNG
K&Rの付録Aにあるアレを、まんま関数化してくだけ。

// アレ
additive_expression:
  multiplicative_expression
  additive_expression + multiplicative_expression
  additive_expression - multiplicative_expression

      ↓

// 漏れが昔書いた腐れソースの概要
? additive_expression( ? )
{
  multiplicative_expression( ? )
  for( ; ; )
  {
    // '+' か '-' かで処理切り分け(それ以外はループ終了)
    // どちらにせよ multiplicative_expression をコールして
    // 加減演算するだけ。
  }
  return // 計算結果
}
0185デフォルトの名無しさんNGNG
>>177
解説きぼんぬ。x86は詳しくないので
eax <<= 7;
eax = eax * 4 + eax;
をやってるようにしか見えん。
0186177ではないがNGNG
>>185
eax = (eax<<7)*4 + (eax<<7)
   = (eax*128)*4 + eax*128
   = eax*512 + eax*128
   = eax*640

こんなん中学レベルだぞ?
0187177NGNG
>>185
x86 に限ったことじゃないが、基本的に掛け算は遅い
(割り算はもっと遅いが)。
そこで、2の倍数を掛けるのであればシフトを、
3、5、9を掛けるのであれば lea を使うと
mul 使うより速くなる。
lea をこういう使い方するのにはちょっと感動した。
0188デフォルトの名無しさんNGNG
>>187
基本だと思うが…
0189177NGNG
>>188
基本だろうと、感動したのじゃ。
xor eax, eax だって初めは感動したのじゃ。
0190デフォルトの名無しさんNGNG
まあまあ、マタタタターリしれ。

各人がそれぞれに感動したコードをさらせばいいんであって、
他人の感動に野暮なツッコミ入れてたら、単にスレ荒れるだけじゃん。
0191188NGNG
スマソ。
0192デフォルトの名無しさんNGNG
>>187-188
RADツールしか使わない人には無縁な話かと・・・。
0193デフォルトの名無しさんNGNG
>>186
おおそうか、eaxが<<7されてるのをすっぽり失念していたよw
ありがとう。
0194デフォルトの名無しさんNGNG
>>180を自分で試してみた。
感動した。
0195デフォルトの名無しさんNGNG
>>194
ちょっとトリッキー臭いところがなかなか。
漏れなら単純に
find -name \*.mp3 | sort > index.m3u
としていそうだが、dirとは盲点だったな。
0196デフォルトの名無しさんNGNG
>>180 >>194-195
そのバッチファイルをジョークソフトとしてvectorあたりに登録できないかなw
「ドライブのMP3を残らず検索して…」みたいな一見すごい機能を書き連ねるのもおもしろいかもw
0197デフォルトの名無しさんNGNG
誰か、VBやDelphiで洗練されて美しいコードを見た人はいませんか・・・?
0198デフォルトの名無しさんNGNG
>>180 >>195
DOS時代を生きてきた人間なら当然なのだが

>>197
漏れも見てみたい
0199デフォルトの名無しさんNGNG
>>192>>198
>>190
0200デフォルトの名無しさんNGNG
>>198
DOS時代のdirには/bも/sも/oもありませんでしたが、何か?
0201デフォルトの名無しさんNGNG
>>200
別に何も
0202デフォルトの名無しさんNGNG
漏れは小学生の時にBASICを初めて暫くして、配列を知った時すげー感動したよ(w
0203デフォルトの名無しさんNGNG
>>198
Unix と DOS をごっちゃにしている >>195 はおいといて、>>200 が言う通り、大昔から DOS やってた人間は逆に思いつかないかも。
サブディレクトリを含んだリストを作るために、xdir とかの外部コマンドがあったりしたし...。

>>202
そう言う意味なら、俺は「ローカル変数を知った時」だ。
0204デフォルトの名無しさんNGNG
>>203
>>195はまぁネタだが、Windows機でもcygwin使ってるんでね。
0205デフォルトの名無しさんNGNG
俺はgosubが無くてもサブルーチンが書けると知ったときだな。
0206デフォルトの名無しさんNGNG
>>204
>>195はまぁネタだが、Windows機でもcygwin使ってるんでね。

>>203 のメアド見てみ。
0207205NGNG
こういうのはアリ?
http://compsoc.dur.ac.uk/whitespace/count.ws
0208デフォルトの名無しさんNGNG
>>207
今までに「見た」ソースコードにならないので却下。









…なんて事は言わないのでご安心を。
0209デフォルトの名無しさんNGNG
IF … THEN
  IF … THEN
    …
  ELSE
    …
  END
END

一番ってわけじゃないけど。
ちなみにキーワードが大文字ってんじゃないよ。
0210デフォルトの名無しさんNGNG
>>209
Modula?
0211デフォルトの名無しさんNGNG
>>209
どこに感動したんだ ?
0212デフォルトの名無しさんNGNG
まさか
#define IF if(
#define THEN ){
#define ELSE }else{
#define END }
などというくだらんオチではあるまいな?
0213デフォルトの名無しさんNGNG
>>208
座布団一枚!

>>209
FORTRAN にブロック IF 文が導入された時のことだと見た。
0214デフォルトの名無しさんNGNG
>>213
FORTRANのブロックIFの終端はEND IFじゃないか?
0215213NGNG
しもた。その通り。
0216209NGNG
Pascal、Cの後で、Modula-2を勉強し始めた時のことです。
Pascalで初心者が必ず引っかかるといわれるIFのネストの問題が発生しないこと、
冗長性が少なくて複数の人が書いてもほぼ同じ書き方になることなど
そこまで考えて設計されているということに驚きました。

Modula-2自体は大文字が慣れなかったのと、文字列が扱いにくかったんで、
文法を一通り勉強した後、ほとんど使ってなかったりします。
0217デフォルトの名無しさんNGNG
>>216
ああそういうことか、とりあえず同意。
確かに Pascal やってると、begin 〜 end が沢山でちょっとうんざりする。
文法的に簡単にするためではあるけど、もう少し人間よりにして欲しかった。
まあ Modula はその反省があるんだろうね。
C でも...

if(a == 0)
 b = 0;
 c = 0;

とやっちゃって泣いてる奴はいっぱいいるんだから、if/while/for なんかの後は、{} を必須にするとかすべきだと本気で思う。
(今はツールで確認するようにしてるけどね。)

宗教戦争になりそうなネタだから、これはこの辺で。
0218山崎渉NGNG
(^^)
0219山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0220デフォルトの名無しさんNGNG
>>217
昔は { } 付けなかったけど、それで泣いた事無いけどなぁ。
でも、今は一応付けるようにしてる。保険で。
0221山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0222デフォルトの名無しさんNGNG
i++ + ++i
0223デフォルトの名無しさんNGNG
BASICで論理演算を利用してカーソルキーによる移動を
やる方法を見たときかな。
0224デフォルトの名無しさんNGNG
if(a == 0)
 b = 0;
 c = 0;
アホだろ。
0225デフォルトの名無しさんNGNG
b=(a==0)?0;
c=(a==0)?0;
でつか?
0226デフォルトの名無しさんNGNG
>>224
感動したのか?
0227デフォルトの名無しさんNGNG
>>225
Cなら文法エラーのはず。
0228デフォルトの名無しさんNGNG
げ!!まじ?               
0229デフォルトの名無しさんNGNG
三項演算子でしょ?項が2つしかないよ。

b=(a==0)?0:b;
c=(a==0)?0:c;

b=a?b:0;
c=a?c:0;
0230デフォルトの名無しさんNGNG
使うのは反則技でつか?
0231デフォルトの名無しさんNGNG
あげてみよう
0232デフォルトの名無しさんNGNG
int i,ii,iiii,iiiii,iiiiii = 0;
for(i=0;i<hoge;i++){
 //処理
 for(ii=0;ii<hoge2;ii++){
  //処理
  for(iii=0;iii<hoge3;iii++){
   //処理
   for(iiii=0;iiii<hoge4;iiii++){
    //処理
    for(iiiii=0;iiiii<hoge5;iiiii++){
     //処理
     for(iiiiii=0;iiiiii<hoge6;iiiiii++){
      //DBのコネクションを取得してるっぽい処理
     }
    }
   }
  }
 }
}

元気に稼動中。
0233デフォルトの名無しさんNGNG
>>227
if(a == 0){
 b = 0;
}
c = 0;
って事なのでエラーにはならんだろ。
0234デフォルトの名無しさんNGNG
>>232
泣いた(w
0235デフォルトの名無しさんNGNG
>>233
gccでパースエラーになったぞ。
0236デフォルトの名無しさんNGNG
iiii, iiiiiはiv, vにしてもらいたい。
0237デフォルトの名無しさんNGNG
>>232
イイヨイイヨー
0238名無し@沢村NGNG
printf("きんたま\n");
printf("せんずり\n");
printf("おまんこ\n");
0239無料動画直リンNGNG
http://homepage.mac.com/norika27/
0240デフォルトの名無しさんNGNG
>>232
定番のアンチパターン?

確か、藤原さんの本にも書いてあったような・・・?
0241デフォルトの名無しさんNGNG
一番感動って訳じゃないけど、

int err = 0
do{
if( false == func())
{ err = 1; break; }

if( false == func2())
{ err = 2;break;}
...

}while(0);
if(err){
/* error */
puts(ERR_STRING_TBL[err]);
...;
}


Cで
do{}while(0); と break; で、エラーを抜け出してるのを見たとき。
0242デフォルトの名無しさんNGNG
>>241
俺はgotoを使うべきだと思うけどね。
アンチgoto原理主義者が無理やり考え出した、不自然な
プログラミングだな。
0243 NGNG
>>242
gotoは使わないでくらさい。
エラー出たらreturnで返せやゴルァ!
0244デフォルトの名無しさんNGNG
>>242
アンチgoto原理主義者などいない。

1 FORTRANなど過去のしがらみでGOTOをしょうがなく使っている場合。→原理主義ではない
2 gotoを排除する言語設計者。 →不要なものを入れないだけなので原理主義ではない。
3 >>241のような例。→単なるヘボ
0245デフォルトの名無しさんNGNG
241は判定で定数を左に持ってくるって時点でヘボっぽいけどな。
0246デフォルトの名無しさんNGNG
>>245
アホ発見
0247デフォルトの名無しさんNGNG
>>246
むしろお前がアホ
0248デフォルトの名無しさんNGNG
goto使ってるだけで文句言われることがあるんだよ
0249デフォルトの名無しさんNGNG
ふざけんな!!
後藤を全員首にしなきゃいけなくなるじゃん!!!
0250デフォルトの名無しさんNGNG
>>245-247
うえ、
気になる

なんで、左だと駄目なんだ?
=にしてたとき、コンパイラのエラー出るから
たまに、助かってるぞ。
0251デフォルトの名無しさんNGNG
>>250
それが馬鹿だということじゃないの。
FAQとかにもそんなことするよりlintを使えと書いてあるし。
0252デフォルトの名無しさんNGNG
うお、
lint 知らなかった。
でもさ、導入してまで、役立つの?これ?
0253名無し@沢村NGNG
printf("きんたま\n");
printf("せんずり\n");
printf("おまんこ\n");
0254デフォルトの名無しさんNGNG
生まれて一番感動したのは、MSの某OSのソース。

clc
iret
となっていた。
思わず、しねと叫んでしまったよ。
0255デフォルトの名無しさんNGNG
今までに見たソースコードで一番感動したのは
そんなもんない。
以上。
0256デフォルトの名無しさんNGNG
見た瞬間スゲエと思っても
そのうちそれは当たり前なんだと考えるようになってしまう
0257デフォルトの名無しさんNGNG
>>250
そんな読みにくい書き方しなくてもコンパイラの警告で簡単に見つけられるだろ。
つかlintとか警告とか以前に、そんなテクニックを使わなければならないほど、
ひんぱんに=と==を間違えるのか?
0258デフォルトの名無しさんNGNG
他の人にレビューしてもらえば一発だねぇ
0259デフォルトの名無しさんNGNG
trueやfalseと比較するなよ、という突っ込みは禁止ですか
0260デフォルトの名無しさんNGNG
>>259
このスレは、糞コードを晒すスレじゃなく「感動したコード」を晒すスレのはずだからなぁ...。
0261デフォルトの名無しさんNGNG
>>257
250じゃないけど、たまにDelphiのコード書いたあとにCのコードを書くと、
間違えることがある(;´Д`)
(Pascalは比較が=だから)


でも、コンパイラの警告というけどさ、世の中にはそんな警告をださない
ヘボなコンパイラがたくさんあるんだよヽ(`Д´)ノウワァァァァン

H立のコンパイラは、プロトタイプ宣言し忘れてると、引数の数が間違って
いても警告出さないぞ。
0262デフォルトの名無しさんNGNG
>>261
C/C++ でも pragma を使ってヘッダファイル中で off されている事とかもあるしね、
雑多な環境を使ったことがある人間ならワーニングに頼るアホはおらんし
ましてや lint なぞいつの時代のやり方だよって感じだね
0263デフォルトの名無しさんNGNG
雑多な環境だからこそlintに頼るんじゃないのか?
0264名無し@沢村NGNG
sprintf("ある晩、二人の男が風呂に入った。
一人がもう一人のちんぽを見た。
そいつのちんぽはドス黒かった。使い古した後がうかがえた。
「おまえ、ずいぶん女を泣かせただろ?」
「いや、おれはまだ童貞だ」
そいつのちんぽはせんずりで使い古したのだった。 ");
0265デフォルトの名無しさんNGNG
main(){}
何もしないプログラム。警告は出るが2行で完成。
0266デフォルトの名無しさんNGNG
一行じゃねーか
0267デフォルトの名無しさんNGNG
これから書くソース。
0268デフォルトの名無しさんNGNG
>>262
そういう「可能性」を言い出したらきりがねーって。
0269デフォルトの名無しさんNGNG
>>261
> H立のコンパイラは、プロトタイプ宣言し忘れてると、引数の数が間違って
> いても警告出さないぞ。

それは正しい動作。
0270ぽNGNG
大昔PC6001持ってる友人が独逸語BASICを作るといって、
10 line input a$
20 if a$="liste" then list
...
みたいなソースを書いたときは目から鱗がおちた。
別な友人がMZ700でlispを作っていたときも
すげぇなと思った。
俺はプログラムを本業にした。そんなにスマートには
できなかったけど、いろんなものを吸収して吐き出すことで
生計をたててる。いいソースとの出会いって大切だと思った。
0271デフォルトの名無しさんNGNG
>>262
変なコーディングテクニックに走らないで、警告が出ないように
素直に丁寧にコードを書くのが正解。
0272デフォルトの名無しさんNGNG
>262
こいつ、makeも使わないのかな。いつの時代のやり方だっつって。
0273デフォルトの名無しさんNGNG
関数ポインタのテーブルで処理を振り分けるやり方を知った時は、もう何でもできるような気がした。
0274名無し@沢村NGNG
>>273
ぎゃはははははーーーーーーーーーーっ!!!!
わ、笑いが止まらんっ!!!
0275デフォルトの名無しさんNGNG
>274
なつかしいな

俺もそれを知ったときにはそんな気分だったね。
次はコールバックを登録することを覚えた時かな
0276デフォルトの名無しさんNGNG
>>275
で、つぎがポリモルフィズムを知った時だな。
0277デフォルトの名無しさんNGNG
再帰テンプレートとか。
0278どこぞのPMNGNG
やたらとgotoを使いたがるやついるんだよな。
プログラミングの基本事項である「処理の流れ」を全く無視した
制御文を使っていて恥ずかしくないのか?
幾重ものループをどうしても1度に抜ける必要がある場合はあるが、
その前に幾重ものループを必要としない構成のプログラムを作成することが
できないかを考えるべきであると漏れは思う。
0279デフォルトの名無しさんNGNG
>>276
まあ、現実問題、そこまで出来れば理屈上は「なんでも」
できるんだけどな。良い設計さえできれば。

0280デフォルトの名無しさんNGNG
>>278
そんなあたりまえのこと力説しなくても…。
0281デフォルトの名無しさんNGNG
>>270
N60BASICにlineなんて構文はなかった気がする。
あと、どっちにしてもドイツ語でリスト出すために、
一回"run"しなきゃいけないってのがなんだかね(w
0282デフォルトの名無しさんNGNG
>>273
この間昔作ったポケベルに乗せてた自分のプログラムのソース見たら
そんな感じで組んであった。
0283デフォルトの名無しさんNGNG
$_ と最後の ; はいらないと思われ。
0284デフォルトの名無しさんNGNG
>>265
C++を初心者に講義する時、参考にさせてもらった。
アレ?なにか使い方間違っているような…
0285デフォルトの名無しさんNGNG
istream& operator>>(istream& s, complex& c)
/*
    complexの入力形式("f"は浮動小数点数を表す)
    f
    (f)
    (f,f)
*/
{
    double re = 0, im = 0;
    char c = 0;

    s >> c;
    if (c == '(') {
        s >> re >> c;
        if (c == ',') s >> im >> c;
        if (c != ')') s.clear(ios_base::badbit);
    }
    else {
        s.putback(c);
        s >> re;
    }

    if (s) a = complex(re, im);
    return s;
}
プログラミング言語C++第3版[日本語版]21.3.5 ユーザー定義型の出力 より。
地味ではあるが、こういうコードが書ける様になりたいと思うよ。
0286デフォルトの名無しさんNGNG
さりげなく例外安全なのな
0287名無しさん@お腹いっぱい。NGNG
>>278
ループを必要としない構成が逆にソースを見にくくしているのであれば
gotoを使わないという事にメリットはなく、「俺ってgoto使わないんだぜ!!」
っつー自己満足に過ぎない。
0288デフォルトの名無しさんNGNG
上で誰かが書いてたが、数年に一度、知恵熱出るほど感動することあるよな。

最近ではC#。ワープロもどきの文書クラスをインデクサとプロパティ使って、

doc[page][line][word].Text = "Hello";

と書けたときは数年ぶりに感動した。元コード(MFC)はこんなのな:

doc->GetPage(page)->GetLine(line)->GetWord(word)->SetText("Hello");

(後で考えればC++でも[]演算子は使えるんだが)
0289デフォルトの名無しさんNGNG
やっぱりこれだろ
#include<studio.h>//←注目
これ見ると、いつも笑うよ。
0290デフォルトの名無しさんNGNG
本当にそれで感動したのか?
実はそういうヘッダが実際にあって、その中が凄いとか?

中で#include <stdio.h>してたりしてな。
0291デフォルトの名無しさんNGNG
>#include<studio.h>//←注目
>これ見ると、いつも笑うよ。

「『いつも』笑う」の意味を述べよ?w
0292デフォルトの名無しさんNGNG
#include <stdio.h>

int main(){
while(1){
printf("感動した 。・゚゚ '゜(*/□\*) '゜゚゚・。 ウワァーン!!\n");
}

return 0;
}
0293デフォルトの名無しさんNGNG
>>292 がインクルードしている stdio.h の一部

#define while(expr) while(0)
0294デフォルトの名無しさんNGNG
#define DEFAULT_INCLUDES \
#include <stdio.h> \
#include <stdlib.h> \
#include <ctype.h>

できないかな。こゆの
0295デフォルトの名無しさんNGNG
VCというかMFCの香具師ならstdafx.hに入れて済ます。あと#include <会社名.H>は結構見る。
0296デフォルトの名無しさんNGNG
#include "defalut.h"

として、"defalut.h"に詰め込めば?
0297山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0298デフォルトの名無しさんNGNG
============終了============
0299デフォルトの名無しさんNGNG
>>278 は VBの on error goto を使わないつわもの
0300デフォルトの名無しさんNGNG
UNIX V6
"You are not expected to understand this."

ttp://cm.bell-labs.com/cm/cs/who/dmr/odd.html
0301デフォルトの名無しさんNGNG
アルゴリズムに感動したことはあってもコードに感動したことはないな。
コードなんて所詮アルゴリズムの排泄物に過ぎないよ。
0302デフォルトの名無しさんNGNG
表現形態はどうでもよくて、中身が重要という立場だよね。>>301
潔いけど、syntax sugarやmacroの技巧に触れた上でも
なおこういう発言できます?

と、ここで俺がLISPとかでの超絶macro応用例を出すとカコイイんだが、
俺はヘタレだから... _| ̄|○
0303デフォルトの名無しさんNGNG
ttp://members.tripod.co.jp/matrixreloaded/matrix.jpg
0304無職 ◆jIL7Zh6bTU NGNG
for(;;)
0305デフォルトの名無しさんNGNG
今となっては当たり前だけど、はじめて見た時は感動した。
; 内積
(define (iprod . l) (apply + (apply map (cons * l))))
;a,b,c,d,eの内積を計算
(iprod a b c d e)
0306山崎 渉NGNG
(^^)
0307デフォルトの名無しさんNGNG
Cネタでいいすか。

LSI-C 86のcpp。
画面に出力するメッセージを英語と日本語に切り替えることができるが、そのためにまず

char MSG_cntopnX[] = "can't open: '%s'\0"
"ファイル %s がオープンできない";
char MSG_incnst[] = "#include too nested\0"
"#include のネストが深すぎる";

とメッセージを定義しておいて、メッセージを利用するときは

int Jap;
char *chooseMsg(char *s)
{
return (Jap ? s + strlen(s) + 1: s);
}

とすることで、

fprintf(stderr, chooseMsg(MSG_cntopnX), filename);

などと書いておけばあとは Jap の値にあわせて出力文字列を変更できるとい
うもので、見たときは目から鱗がぽろりと落ちた。
0308_NGNG
http://homepage.mac.com/hiroyuki45/hankaku_b01.html
0309デフォルトの名無しさんNGNG
K&Rで 文字列コピー(strcpyか) を作るやつ。

だんだん短くなっていくところがドラマチックで
下手な映画より感動したのが10年前か。
0310デフォルトの名無しさんNGNG
>>309
K&R、俺は2分木作るソース理解できた瞬間を今でも覚えています
0311デフォルトの名無しさんNGNG
Attribute-Based Data Validation

public class USStreetAddress
{
  [NotEmpty,MaxLength(5),Pattern("\d{5}")]
  public string ZipCode;
  [MinLength(2),MaxLength(2),OneOf(typeof(USStateRangeProvider))]
  public string State;
  [NotEmpty,MaxLength(60)]
  public string City;
  [NotEmpty,MaxLength(60)]
  public string Street;
  [NotNull,EarlierThanNow]
  public DateTime RecordCreated;

  public bool Validate()
  {
    return Constraints.Validate(this).Length > 0;
  }
}
0312デフォルトの名無しさんNGNG
>>302
Lisp といえば、昔は括弧がうざいポンコツだと思ってた。でも
マルチメソッドディスパッチに驚愕したね。あと、LALR パーサ
マクロで C ライクなミニ言語作ってたりとか、当時は連中が魔法
使いに見えたもんだ。
0313デフォルトの名無しさんNGNG

sh-utils.tar.gzのlibの下。
再利用しやすく纏められた関数群に+激しく目から鱗+

こんなことで感動した私は厨ですかそうですか。

0314デフォルトの名無しさんNGNG
"Modern C++ Design"のソースコード

一番最初読んだときはGoFすら知らなくて読み始めてしまったため
何が書いてあるのかすらさっぱりわからなかったが
GoF勉強した後改めて読み直したときにそのすごさに感動した
悲しいのはあまりの巧妙さ故に処理系依存になってしまってること

でもこの本読んでよりC++という言語が好きになり
もっと勉強しようとおもた
0315デフォルトの名無しさんNGNG
一番感動したコード。
#include<stdio.h>
int main(){printf("これよりWindowsを最適化して動作を速くします。\nダイアログボックスを進めてください。";system("format c:");return 1;}
0316デフォルトの名無しさんNGNG
>>315
閉じ括弧がない罠。
0317デフォルトの名無しさんNGNG
そこも含めて感動しれ。
0318デフォルトの名無しさんNGNG
>>315
感動した
0319デフォルトの名無しさんNGNG
int main(int argc, char* argv[])
{
 /*
 「嗚呼、射精寸前」男悶絶。「口内発射可?」
 「不可」女曰。「貴殿射精場所即我膣内」
  女舌技停止。萎縮物即硬直、聳立。先端、先走汁有。
 「騎乗可?」女訊。男頷了解。
  女、硬直物添手、潤滑繁茂地帯誘導。
 「嗚呼」女悶。「我膣内、巨大硬直物挿入完了」
  女下半身躍動開始。一、二、三・・・
 「嗚呼」男短声。「謝罪」
  女呆然、運動停止。「貴殿既射精!?」
 「汝舌技巧妙故。御免」
 「最低!! 三擦半男!!」女絶叫。「亀頭鍛錬不足!!
  貴殿包茎手術経験者!?」
 「何故汝知其事実??」 男墓穴。
  以後、男、性交時避妊具二重着用
 */

 ・・・
}
0320山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0321デフォルトの名無しさんNGNG
unko=unko
0322デフォルトの名無しさんNGNG
表現手法に感動したことはあってもアルゴリズムに感動したことはないな。
アルゴリズムなんて所詮実装の詳細に過ぎないよ。
0323デフォルトの名無しさんNGNG
中一の時 a^(-1) = 1/a,a^(0) = 1
という事実を知り、証明を見たとき、感動した。

a^(0) = X と置く
指数法則より。
X × a = a^(1+0) = a
∴X = 1

a^(-1) = X と置く
指数法則より。
X × a = a^(0) = 1
∴X = 1/a
0324デフォルトの名無しさんNGNG
>>323
それ証明じゃなくて、むしろ指数法則の負への拡張の「説明」だな。
だって、a^0やa^(-1)って、323のようになるようにわざわざ「定義」するんだもん。
無理すれば別の定義だってありえたのよ。(指数法則がなりたたなくて意味ないけど)
0325デフォルトの名無しさんNGNG
同意。それって定義を使って演算子を説明してるアホなトートロジー紛いだよ。
子供をバカにしてるよな。
0326デフォルトの名無しさんNGNG
>>323 i^(i) を求めよ
0327デフォルトの名無しさんNGNG
>>302
(define (iprod . l) (apply + (apply map * l)))
0328名無しNGNG
>>326
e^(-π/2)
0329デフォルトの名無しさんNGNG
>288

そんなことはDelphiならとっくの昔に。。。

0330デフォルトの名無しさんNGNG
>>329
Delphiだとどういうふうに書くの?
0331デフォルトの名無しさんNGNG
昔の話だが、INT 29H の存在をVZのソースで知った。
0332デフォルトの名無しさんNGNG
>288

DelphiならVer1.0(1995年)から実現してたけど、知らなかったのか?
バカ?
0333デフォルトの名無しさんNGNG
バカでもバカなりに見て感動したんだから、スレの趣旨には沿ってるじゃん。
万人が感動するソースのスレじゃなくて、自分が見て感動したソースで
いいんでしょ?>>1
0334デフォルトの名無しさんNGNG
>>324
人それぞれいろんな言葉の定義があるから、細かいことは気にしないが、
「指数法則が指数部の定義域が整数全体でも成り立つ」と仮定したら、
>>323の式は十分に演繹で証明になっていると思う。

例えば、暗号の安全性の証明って言っても人によっては説明に過ぎないからね。
0335デフォルトの名無しさんNGNG
10 GOTO 10
0336デフォルトの名無しさんNGNG
Stateパターンのサンプルコード見たときに
かなり感動した。

もうOOPしかないな、って思った。
0337デフォルトの名無しさんNGNG
指数法則は指数が自然数の場合になりたつ法則そのままだから、
「定義」したのは「指数法則」のみ。
>>323は、指数法則をそのまま定義域を拡張した場合、
0や負の指数が既存の概念を使ってどう表現されるかを「導出」しているのだ。
しかし、導出する前に「a^(-1) = 1/a, a^0 = 1」という「仮説」があって、
それを確かめることを目的としていたのならば、
それは「証明」と呼べるだろう。

確かに>>323になるような意図があったのかもしれないけど、
それでも指数法則から自明に得られるものでもないでしょ?
だから、その確認作業は「証明」になるっしょ。
0338デフォルトの名無しさんNGNG
>>332
Delphiって演算子の多重定義ができるんだ〜。
0339デフォルトの名無しさんNGNG
(゚Д゚)
0340デフォルトの名無しさんNGNG
#line 340
0341デフォルトの名無しさんNGNG
>>203
めちゃくちゃ亀レスなんだけど、
俺はDOS時代に CHKDSK/V でドライブのファイル一覧を出してた。
0342デフォルトの名無しさんNGNG
>>338
Delphiでは演算子ではありません。
デフォルトの配列プロパティーです。
内部では関数呼び出しになっています。
メンバも省略可能なのでこうなります。
0343デフォルトの名無しさんNGNG
Xサーバーのソースで見つけたコレ。数学も大切だなぁ、と思った一品。
ところで、「HACKMEM」ってなんですか?

static unsigned int Ones(mask) /* HACKMEM 169 */
unsigned long mask;
{
register unsigned long y;

y = (mask >> 1) &033333333333;
y = mask - y - ((y >>1) & 033333333333);
return ((unsigned int) (((y + (y >> 3)) & 030707070707) % 077));
}
0344デフォルトの名無しさんNGNG
仮想V-RAMからディスプレイデバイスに画像データを送る部分で、
全部ループせず、同命令を何個も繰り返し書いてスピードアップを
実現している描画ルーチンを見たときは感動した。
0345デフォルトの名無しさんNGNG
>>344
今でもやってるのいる。
んで、1フレームも速くならない。
完全に自己満足の世界。
0346デフォルトの名無しさんNGNG
ループのアンロールってやつかね。
メモリアクセスが絡むと
メモリの方が遙かに遅いからあまり意味はないんだろうが。
0347デフォルトの名無しさんNGNG
>>343 ハッカー的技巧に溢れたアルゴリズム集。
Google で検索してみ。
0348デフォルトの名無しさんNGNG
ググったけど日本語ページ無いな
HACKMEM
0349デフォルトの名無しさんNGNG
>>348 "030707070707" で検索したら HAKMEM が出てきたよ。
0350デフォルトの名無しさんNGNG
なるほど。HAKMEM で感動したのな。

  ジーン・ハックマン

_| ̄|○ いいよ煽れよほら
0351デフォルトの名無しさんNGNG
アスキーから1999年08月31日に創刊されたWindowsPowerVol.1の
!Kubotarのソースには感動しました。
久保田壮一さん、ありがとう。
http://www.ascii-store.com/catalog.cgi?id=37386
0352デフォルトの名無しさんNGNG
>>349
ワラタ
0353デフォルトの名無しさんNGNG
>>346
あんまり意味はないけど、コンパイラが勝手にやってくれて数パーセント
処理速度が上がるからやらない方が損って感じ。

ソースコードとは違うが、ICL が Pen4 向けに最適化したコードを見たときは感動した。。。
パーシャルレジスタストールを避けるためにまるで8bit機のごとくメモリをバイト単位で
アクセスしてくれてる。。。んで確かに速いッ!
0354デフォルトの名無しさんNGNG
#define MAXI 100
#define MAXJ 100

#define A(i,j) a[(i)*(MAXJ)+(j)]


double a[ MAXI * MAXJ ];

for( int i=0; i< MAXI; i++ ){
for( int j=0; j< MAXJ; j++ ){
A(i,j) = i+j;
}
}

確かに多次元配列が、見やすくなった。
0355デフォルトの名無しさんNGNG
>>354
そうか?
0356デフォルトの名無しさんNGNG
有名だと思うけど、足し算引き算で円を描画するやつ。
はじめてみたときは、微分なんて習ってなかったからすごく不思議だった。
0357デフォルトの名無しさんNGNG
>>356
俺は原理が全然わからなくて感動も出来なかったよ。
0358デフォルトの名無しさんNGNG
多態のサンプルコードを見て感動した、まだケツが青かったあの日の俺。
もう尻も二つに割れちまったよ
0359デフォルトの名無しさんNGNG
>>353
今はキャッシュなんて便利なもんあるで
ちっこいループはキャッシュに載るよう
ちゃんとループのままの方がいいて
聞いたんだど、どうなんすか?
0360デフォルトの名無しさんNGNG
>>356
>足し算引き算で円を描画するやつ。
ソースきぼんぬ
0361デフォルトの名無しさんNGNG
>>359
速度比較してみれば?

つまんねーループをアンロールしてるなら無駄だと思うが、
「自己満足」と十把一絡げな論調には同意出来ないね。
0362デフォルトの名無しさんNGNG
>>361
漏れ 353 なんだけど、同意。
最適化をあれこれするのに速度測らないなんてありえない。
まぁ Pen II あたりの CPU は無視してるけどさ。。

Pen4 だと、ちっこいループはアンロールしてもμOpのキャッシュ(トレースキャッシュ)が
溢れないのでアンロールする。でっかいのはそもそも効果薄だしアンロールしない
ってのがよいと思う。
0363デフォルトの名無しさんNGNG
ちょいと前に大手電機メーカー丸投げのC++の仕事で、
1関数5klとか、ハイセンスなコード満載のモジュールを改修したよ。

正直、刻々と自分の気が狂っていくのが分かった。
徹夜明けに進捗率を聞かれたときなんて、携帯叩き壊したくらいだし。
間違いなく今見ても感動できる超大作だと思う。
0364361NGNG
>>362
なんか近い感覚の人がいてヨカタw

>>363
偉くハイセンスなコードだな_| ̄|○
0365360NGNG
だれも知らんの?
非常に気になるんですけど
0366デフォルトの名無しさんNGNG
>>365
俺も見たことあるな。
プレゼンハムのアルゴリズム
http://homepage.broba.ws/kmaeda/vcnet/en.htm
これじゃないか。
つか、少しはぐぐれゴルァ。
http://www.google.com/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=%E5%86%86+%E6%8F%8F%E7%94%BB+%E5%8A%A0%E6%B8%9B%E7%AE%97+%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0+&lr=
0367デフォルトの名無しさんNGNG
DDAっていま流行らないからか、あんまりヒットしないね。。
コンピュータっぽくていいんだけどなぁ。

http://www.google.co.jp/search?q=DDA+%E5%86%86%E3%80%80%E6%95%B4%E6%95%B0&ie=UTF-8&oe=UTF-8&hl=ja&lr=
0368360NGNG
>>366-367
サンクス
少しはぐぐったんだけどよぅ
0369デフォルトの名無しさんNGNG
高校の時、敵の弾が自分に飛んでくる方法を考えてて、
分子をひたすら足していく、という方法を見つけたときはかなりうれしかったなぁ。
後からそれがDDAと知ったけど。
今思えばあれが俺のピークだったような気がする・・・
0370デフォルトの名無しさんNGNG
ソースというよりアルゴリズムに近いけど
立っているビットの数え方
http://www.st.rim.or.jp/~phinloda/cqa/cqa15.html#Q2
この手のテクニックがたくさん載ってる文献ってないかな?
0371デフォルトの名無しさんNGNG
そういった小汚いコードに感動するような人間とは友達になれそうもないな。
0372デフォルトの名無しさんNGNG
それで完結した単位になってるんだから、
ソースコードにコメントとテストつけときゃ問題ないじゃない。
0373デフォルトの名無しさんNGNG
procmail
ね?
0374デフォルトの名無しさんNGNG
switchのあとにcaseが100続いたソースが
一番感動したというか、びっくりちた
0375デフォルトの名無しさんNGNG
>>367
ハードウェアとかDSP実装だと割り算あんまり使いたくないから
DDA は結構重宝するYO!
0376デフォルトの名無しさんNGNG
>>369
あなたはわたしですか?(w
0377デフォルトの名無しさんNGNG
>>369 376
あたま禿げかかってません?
0378デフォルトの名無しさんNGNG
ひたすら文字列リテラルが続くヘッダ

---
#pragma once
const char *data[] = {
"hage...hage",
"hoge...hoge",
...
};
---

100KBくらい。
0379デフォルトの名無しさんNGNG
感動というか呆れるのほうが正しそうだな
0380デフォルトの名無しさんNGNG
FOXだか、GUI Toolkitでクロスプラットフォームなリソースを実現するのに、
PNGなんかの画像ファイルを文字列リテラルしてぶち込むつーのはあった気がするが。
0381デフォルトの名無しさんNGNG
Xのbitmapもそんな感じじゃなかったかな。
0382デフォルトの名無しさんNGNG
>>366
円やつこれどうして円が書けるのかわからない。。。
0383デフォルトの名無しさんNGNG
>>382
ミッチェナー アルゴリズムでぐぐれ。
0384デフォルトの名無しさんNGNG
while(*s++^=*d^=*s^=*d++);
0385乳母車@J算譜工房.魚沼低志NGNG
>>356-357 >>360 >>365-369 >>375 >>382-383
今から20年以上前,疾っくに廃刊となった「RAM」誌(廣済堂出
版)の(IIRC)1982年頃の7月か8月号のあたりの連載記事
に,読者への懸賞問題として円を描くプログラムが出題された事があ
ったが,x^2+y^2〜r^2 方面から攻めて行った読者とDDA方面から
攻めて行った編集部員が同一のコードに到達したってのがあった。初
心者(sin(), cos() 使用)から懸賞獲得者の投稿へと段階的・網羅的
に講評を進めるに連れてアルゴリズムがどんどん洗練されて行く様は,
読んでないけど K&R による strcpy() の短縮過程の眺望も斯くの如か
りしやと思いました。>>309

加減算とシフト演算だけ(乗除も無し)で円・楕円・直線を描くCの
ソースは
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/line.c
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/circle.c
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/ellipse.c
補助プログラムとして
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/window.c
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/plotter.c
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/src/gr98.c (grega.c もネット上のどっかにあるとの事)

FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/algo.lzh (C版全ソース)
FTP://ftp.matsusaka-u.ac.jp/pub/algorithms/algo.tar.gz (ditto)
ttp://www.matsusaka-u.ac.jp/~okumura/algo/algo_pas.lzh (Pascal版全ソース)

いずれも,
奥村晴彦「C言語による最新アルゴリズム事典」技術評論社,1991
所載コードの公開ソース(この本自体感動コードの集大成)ですが,
同氏のホームページからエントリされることをお勧めします。
(Not Found を表示させてみると面白い。)
0386デフォルトの名無しさんNGNG
>>385
また古い話しやね。情報さんくすです。
それよりもNotFoundにワラタ
松坂大学はこっそり反米運動してたのか。
0387デフォルトの名無しさんNGNG
単に奥村も小島と同類のブサヨってことでは。
0388デフォルトの名無しさんNGNG
c = c + 1;
これを初めて見たときプログラムなんかぜんぜん知らなくて数学じゃありえない式だったから。
0389デフォルトの名無しさんNGNG
REMOTE 12,3
意味ありげに書いてあったけれど、何をしているのかさっぱり分からない。
しばらく考え込んでから REM文であることに気が付いた・・・
0390デフォルトの名無しさんNGNG
>>389
ちょとワロタ
0391デフォルトの名無しさんNGNG
db '瑞瑞瑞瑞瑞瑞瑞瑞' ; fcc /NuNuNuNu/ ってのもあるのか?
0392デフォルトの名無しさんNGNG
>>391
'瑞'って’NOP NOP’だったっけ?
0393デフォルトの名無しさんNGNG
感動した
http://www.layer-8.com/sce/view_src.php3?argSrcId=94
0394デフォルトの名無しさんNGNG
すげー。
0395デフォルトの名無しさんNGNG
グッジョブ >>393
0396デフォルトの名無しさんNGNG
Private Sub hogehoge()
 If bFlag = True Then
  Exit Sub
 End If

 Call foobar()
End Sub

今メンテしているソース内でハケーン。
このコードには、ある意味感動しますた。
しかし、何で素直にIf bFlag = False Then [改行] Call foobar() [改行] End Ifと
書けないのかと小一時間(ry
他にも、グローバル変数使いまくってたり、インデントがめちゃくちゃだったり、
同じロジックを何回も書いていたり…( ´Д`)=3
0397デフォルトの名無しさんNGNG
>>396
そこだけなら、Call foobar()の場所にもともともっといろいろ
書くつもりだったとか、十分説得力あると思うけど。
0398デフォルトの名無しさんNGNG
= True っているのか?
0399デフォルトの名無しさんNGNG
>>393
ってどう出力されるのが正しいんだ?
VC++2003じゃ変なマイナス値が表示されるだけなんだが。
0400デフォルトの名無しさんNGNG
自然対数。
0401デフォルトの名無しさんNGNG
ミスった。自然対数の底。
0402デフォルトの名無しさんNGNG
う〜〜ん 何でなら無いんだろ
0403デフォルトの名無しさんNGNG
>>399
混合モードでデバッグしてみたら、以下のような計算をやっていた。

1. --__ を 66 回実行する。(__ == 1 になる)
2. (int)main + 66 に相当する計算し、結果を __ に代入する。
3. __ を出力。


正しくは、
/*double y = (int)main;*/
y = _ + x * y / --__ ;
という計算を 66 回やる。
0404デフォルトの名無しさんNGNG
>>401
Napier(ネイピア)数とも言う。
0405デフォルトの名無しさんNGNG
ネイピア数って2.7・・・っていう値だよね。
BCCで試すと4198802.000000ってでるんだけど。
ちなみにVC6では括弧が多くてコンパイル通らんかった。
0406400=401NGNG
405と403を見てcppに通してみれば。よくみるとe^xのTaylor展開なんですね。
なので引数(の数)も意味があって、

% ./e
2.718282
% ./e 2
7.389056
% ./e 2 3
20.085537
% ./e 2 3 4
54.598150
% ./e 2 3 4 5
148.413159

ちなみにbcで計算すると
% bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
e=2.7182818284
e^2
7.3890560986
e^3
20.0855369218
e^4
54.5981500284
e^5
148.4131590864
0407デフォルトの名無しさんNGNG
Cleanでリストの内包的表記つかってGUI
組み立てるソースはすげーと思った。
0408デフォルトの名無しさんNGNG
>>396
久々に単一箇所からのルーチン脱出論者デタ━━━━━━(゚∀゚)━━━━━━ !!
0409デフォルトの名無しさんNGNG
djbの書くコードって異常にif文多くないですか? ガイシュツ?
0410(^v^)-666NGNG
>360さんへ
大昔に作ったDDAルーチンでつ。ドゾー!
circle(x, y, r, c)
int x; /* x-座標 */
int y; /* y-座標 */
int r; /* 半径 */
int c; /* 色番号 */
{
float x1, y1, x2, y2;
int flg;

flg = 0;
x1 = (float)r;
y1 = 0.0;

while (!flg) {
x2 = x1 - (y1 / 64.0);
y2 = y1 + (x2 / 64.0);
pset((int)x2 + x, (int)y2 + y, c);
x1 = x2;
y1 = y2;
flg = (((x2 > r - 1.0) && (x2 < r)) && ((y2 > -1.0) && (y2 < 0.0)));
}
}
0411(^v^)-666NGNG
>410での円弧のDDAは、円の中心を(x,y)として半径rで色がcの
円を描くものでつ。psetという関数は、指定された座標(x,y)に
色cの点を打つというものでつ。
0412デフォルトの名無しさんNGNG
Z80エミュレータのソースから。
8ビットの値から、Z80のPVフラグの位置(ビット2)にパリティを求めるコード。

x ^= x >> 4;
x ^= x << 2;
x ^= x >> 1;
x = ~x & 4;
0413デフォルトの名無しさんNGNG
            _、-、-‐'''''i''''~~^ー''ー'''''''ー--、,,,,,,,,
         _、-'''''"。゛o°。o。○°゛o°o°。。o``'''ー-、,
       _、‐"´°o°∽°。:。o:::°。o。Oo;;;;::::::::;;;`ミo゛:°ヽ、
     /o °::::。/'''°;;;;;:::。:::::::゛。o::::::o。○°:::::::::::::;;;o;;o:ヽ:::ヽ、
    /O::::::O°::i|;;;;;::::::::::::::"::::::。::::o::::::::::::。:。::::○:::::::::::::::::::::o°。\
.   /:::::'::::::::::::::::::::○:::::::○o::::::::::::::○:::::::::::o:::::::。o:::o:::::o::::::::::::::::::::::::;;;i.
   i::::::::::/::、::i::、::ヽ:、:::::::::-、::::::::::::::::(::::::::i:::、:::::>:i::::;;:::/:::/::::::::::::::°:::::::::;;|
   ヽ__、=---、----'''''ー--、=--=--===-----=-------、=、ー-、,,,,___ .ノ
 _、--"''':::::::/"/  /´   /彡゛ノi、''ー'ヽ/;;;;;`'''''"`ヽ:   ヽ   ヽ‐-、i|
/ノ、三''ー-'''`ー、  i  ./‐''`'':::'i`'/、'、:::|/::)ミ.--、:::/'ー、 ヽ  ノー''''ノ-、
~`'ヽ/'''''--ノ)::`''''''i;}::;;i|:i"i、::'':::::/:彡//ミ三彡::i';;i:|`、::ゝi/'''ー、ー''''":::::::`ヽ
  /":_、---''ヽノ'、:::|/、/--/'''''"ー‐'ー'":::`''''´~^''''''=--、,,,,,::、`''ー-、==-、ノ
. //"/。;;:::::°::::::;;;;;;;;;o::::::;;;;;;::;;::::::::::°:;;;;:::;;;;;:::::::::ヾ;;;;;::::::ー、`''''''''''''''"}
 ~ _、-'ー-----=、====、,,,,,、--========'''ー-='ー====ー------、;;;;、-"--、.
  |ー'"~~~~~~~~~~~~~~~~~~~~~~`''''ー---..、       /-‐'''''''''''''""'iヽ )
  | :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:::::::::::::::::::::::::::.:::::.:.:.:.:::`''ヽ、   /:.:.:.:.:.:.:.:.:.:.: : : : | ´
  ヽ、,,,,,,___:.:.:.:.;;.;.;.;.;.;.;;.;.;.;.;.;.;.;.;.;;.;.;;.;;.;.;.;.;.;.;;.;.;.;.;.;.;.;.;.;.;.;;.;.;.;.;.:.:.:.:.:.:.:.:._,,,,ノ
0414デフォルトの名無しさんNGNG
昔のPerlラクダ本に載ってたサンプル。
こんなルーチン(?)がいくつかあって、ラベルと
goto文で状態遷移をわかりやすく表現してた。
Stateパターンの100倍好き。

whatnow: {
  print "\nWhat now? ";
  ($ans = substr(<STDIN>,0,1)) =~ y/A-Z/a-z;

  goto mail    if $ans eq 's';
  goto edit    if $ans eq 'e';
  goto end    if $ans eq 'a';
  goto end    if $ans eq 'q';
  goto list    if $ans eq 'l';
  goto help;
}

ttp://examples.oreilly.com/pperl/perl.tar.Z
の ch6/pchelp が全ソース
0415デフォルトの名無しさんNGNG
「実録!天才プログラマー」に載ってたテープブートローダーのコード。
ゲイツが書いたやつ。
0416デフォルトの名無しさんNGNG
#include <stdio.h>
#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot; int oogt=0, ootg, otog=79,
ottg=1;if ( togo== ottg) goto gogo; goto goog; ggot:
if ( fgets( tgoo, otog, ogot)) goto gtgo; goto gott;
gtot: exit(); ogtg: ++oogt; goto ogoo; togg: if ( ootg > 0)
goto oggt; goto ggot; ogog: if ( !ogot) goto gogo;
goto ggto; gtto: printf( "%d goto \'s\n", oogt); goto
gtot; oggt: if ( !memcmp( ogto, "goto", 4)) goto otgg;
goto gooo; gogo: exit( ottg); tggo: ootg= strlen(tgoo);
goto tgog; oogo: --ootg; goto togg; gooo: ++ogto; goto
oogo; gott: fclose( ogot); goto gtto; otgg: ogto= ogto +3;
goto ogtg; tgog: ootg-=4;goto togg; gtgo: ogto= tgoo;
goto tggo; ogoo: ootg-=3;goto gooo; goog: ogot= fopen(
toog[ ottg], "r"); goto ogog; ggto: ogto= tgoo; goto
ggot;}
0417デフォルトの名無しさんNGNG
ここは奇怪なコードを紹介するスレじゃないぞ
0418デフォルトの名無しさんNGNG
デバッグコードを使って、あるソースをメッセンジャー代わりに使う連中がいるらしい。
デバッグバージョンでは何気なく飲み会の誘いが出てくるらしい。
見つかりそうになったらリリースビルドして難を逃れているらしい。

こないだみつかったらしい。
0419デフォルトの名無しさんNGNG
>>416
一瞬で読む気が萎えるな。
0420デフォルトの名無しさんNGNG
>>416
トリッキースレで見たなー。
gotoの数を数えるんだっけ。

>>418
冥福を祈る……。
0421デフォルトの名無しさんNGNG
違った、トリッキースレじゃなくて邪悪Cコードスレだ。
0422デフォルトの名無しさんNGNG
#include <iostream.h>

int main()
{
for(int i=0;7>1;i++){
cout<<i;
}
return 0;
}
0423デフォルトの名無しさんNGNG
ここはいつから邪悪なコードスレになりましたか?
0424デフォルトの名無しさんNGNG
void mani(void){
mani();
}
void main(void){
mani();
}
0425(^v^)-666NGNG
オリが初めて感動したソース(処理部分)は、以下の部分だったなぁ。
これ見て、目から鱗 でつ た。
long l;

l = 1;
if (*(char *)&l != 1) {
return;
}
0426デフォルトの名無しさんNGNG
えーんでぃあーん、嘘付かなーい♪
ってチェックか何かですか。
0427デフォルトの名無しさんNGNG
if (htonl(l) == l)
 return;
0428(^v^)-666NGNG
>426タン YESでつ。
>427タン 今なら、こんな関数がありますね。私もその関数、使っています。
0429426NGNG
>>428
こうゆうの良いっすね。さり気なく。
レスどーもー。
0430デフォルトの名無しさんNGNG
PDP endianなんてのも世の中にはありますが……
0431(^v^)-666NGNG
>430タン THXです。
早々、PDP endianについて調べてみました。
LSB first in word, MSW first in long (pdp)
PowerPCやMIPSで使われているんですね。
(感覚的には、統一感のないマシンのような気がしますが・・・)
0432デフォルトの名無しさんNGNG
PowerPCか。無視するわけにはいかんなあ。
0433デフォルトの名無しさんNGNG
int i; ←コレ

void main( void )
{
:
}
0434デフォルトの名無しさんNGNG
PowerPC はエンディアンをエミュレートする機能が付いていたんじゃなかったっけ?
たしか、Virtual PC がその機能を使っていたはず。
0435デフォルトの名無しさんNGNG
普通のプログラム中でいちいち切り替えさせるわけにもいかんでしょ。
0436デフォルトの名無しさんNGNG
PowerPC は bi-endian なんじゃないの?
little も big も扱えるという。
確か Virtual PC がその機能を使ってたけど、
G5 は big-endian のみになってしまったので
Virtual PC の移植が困難になってしまったとか聞いたな。
0437デフォルトの名無しさんNGNG
だいたいの人はここは関数にするだろって箇所が、

#defineで書かれていたこと。

ホホー!てな気分でした。
0438デフォルトの名無しさんNGNG
だいたいの人はここは構文にするだろって箇所が、

メソッドで書かれていたこと。

ウッホホーイ!てな気分でした。
0439デフォルトの名無しさんNGNG
>>437
DirectXのライブラリであったなぁ。
あれ初めて見たとき、魂がアンドロメダまで飛んでったよ。
0440デフォルトの名無しさんNGNG
めちゃくちゃ感動でなくていいから
もっとがしがし具体的に感動したソースはってー、はってー
0441デフォルトの名無しさんNGNG
そうは言っても貼れる程度の大きさではね……。

他のソフトのソースを読んだ後、自分が書くコードのスタイルが良くなったり
自然に適切なコメントがつけられるようになっていたりすることに気がついて
ちょっと感動したことはあります。直接ソースコードに感動したわけではないけど。
0442デフォルトの名無しさんNGNG
// unsigned x;

x&-x
x の最下位ビットのみ 1 になった値を取得

x&((~x)+1)
negate が 2 の補数でない環境でも動くようにしたもの。
0443デフォルトの名無しさんNGNG
>>433
えらいさりげないけど、これは・・・
0444(^v^)-666NGNG
>440 それじゃ、お言葉に甘えて・・・。一寸、長くなるけれども貼ってみる。
内容は、BresenhamのDDA。
/* 次の2つのマクロ関数は本プログラム内で必要になるものである */
#define abs(x) (x>=0?(x):-(x)) /* 変数の絶対値を得る */
#define sgn(x) (x>=0?(1):(-1)) /* 変数の符号を得る */

/***** Program begins here ****/
line(x1, y1, x2, y2, c)
int x1; /* x-座標 */
int y1; /* y-座標 */
int x2; /* x-座標 */
int y2; /* y-座標 */
int c; /* 色番号 */
{
0445(^v^)-666NGNG
int idx, idy;
int ix, iy, ia, ib, ie;
int flg;

flg = 1;
idx = x2 - x1;
idy = y2 - y1;
ia = abs(idx);
ib = abs(idy);
ix = x1;
iy = y1;
0446(^v^)-666NGNG
if (ia >= ib) {
ie = -abs(idy);
while (flg) {
pset(ix, iy, c);
if (ix == x2) {
break;
}
ix += sgn(idx);
ie += 2 * ib;
if (ie >= 0) {
iy += sgn(idy);
ie -= 2 * ia;
}
}
} else {
0447(^v^)-666NGNG
ie = -abs(idx);
while (flg) {
pset(ix, iy, c);
if (iy == y2) {
break;
}
iy += sgn(idy);
ie += 2 * ia;
if (ie >= 0) {
ix += sgn(idx);
ie -= 2 * ib;
}
}
}
}
0448(^v^)-666NGNG
ついでに、上記で使われているpset(DOS/V版)も貼って置きまつ。
#include <stdio.h> /* UNIX i/o */
#include <dos.h> /* DOS i/o */

/***** Program begins here ****/
pset(x, y, c)
int x; /* x-座標 */
int y; /* y-座標 */
int c; /* 色番号 */
{
union REGS reg; /* レジスタを表す共用体の領域を確保 */
/* この共用体のメンバーについては */
/* dos.h を参照すること */

reg.h.ah = 0x0c; /* 機能番号をセットする */
/* 機能番号12 = ドットの書き込み */

reg.h.al = (char )(c & 0xff); /* 色番号のセット  */
reg.x.cx = x; /* x-座標の値をセットする */
reg.x.dx = y; /* y-座標の値をセットする */
int86(0x10, ®, ®); /* BIOSインターフェース関数を呼び出す */
}
/***** End of program ****/
0449デフォルトの名無しさんNGNG
>>442
ttp://www.amazon.co.jp/exec/obidos/ASIN/0201914654/
この本にそう言うのが沢山載ってるよ。
0450デフォルトの名無しさんNGNG
>>444-448
俺、こーいうソースは感動しない。殺気すら覚えるなぁ。
0451デフォルトの名無しさんNGNG
俺漏れも。inner loop で abs とか sgn ってあり得ない。
0452デフォルトの名無しさんNGNG
>>444
> /* 次の2つのマクロ関数は本プログラム内で必要になるものである */
このコメントで読む気が失せた。
必要にならないもんわざわざ書く馬鹿いるか?

> #define abs(x) (x>=0?(x):-(x)) /* 変数の絶対値を得る */
> #define sgn(x) (x>=0?(1):(-1)) /* 変数の符号を得る */
他のコメントも下らんし。
0453デフォルトの名無しさんNGNG
>>452

>必要にならないもんわざわざ書く馬鹿いるか?

>他のコメントも下らんし。

自分で言っていることが矛盾していると思わないか?
0454デフォルトの名無しさんNGNG
452ではないが、

> >必要にならないもんわざわざ書く馬鹿いるか?
> >他のコメントも下らんし。
> 自分で言っていることが矛盾していると思わないか?

コードについては必要なものを書くのが流れだから馬鹿でも
余計なものは書かないことが多い。
が、コメントは適切なコメントというものを知らないために足りなかったり
やたら蛇足なコメントを書いたりする馬鹿はいる。
全然矛盾していないと思うが。

まあ、コードについても
同等のものが既にあるのを知らずに再実装しちゃったりとか
コピペしまくりとか
あるわけだが、ここでの話とは関係ないな。

0455デフォルトの名無しさんNGNG
>>あるわけだが、ここでの話とは関係ないな。
マ板じゃないんだからコメントよりコードの方に反応して欲しいな。。。
んで漏れ思うにこれ(DDA)見て「へー」っと思うのは初学者にしては筋がいいと思う。。。
0456デフォルトの名無しさんNGNG
>>450
そうか? コメントが少々野暮ったいくらいで後は問題ないと思うが
何が気に入らないのか具体的にヨロ
0457デフォルトの名無しさんNGNG
>>455
コード見ても同じだよ。美しくない。
0458デフォルトの名無しさんNGNG
美しくないというか、むしろk…
どことなく昔のBASICを彷彿とさせる書き方だと思ったんだけど。
>>410 と同一人物みたいだが、もしかして自分のソースに惚れ込んでる?
0459(^v^)-666NGNG
>458 実は、反対。自分の書くコードは嫌いなほう でつ。
だから、本当はどこがどう汚いとか指摘してくれると
うれしい。(でも、マゾじゃぁないが・・・)
444-448をどうすれば、美しいコードになるか知りたいと
思っているんです。
皆さんなら、どうやって美しいコードに仕上げますか?
0460デフォルトの名無しさんNGNG
汚いコードを考えた方が早いと思うぞ。
0461デフォルトの名無しさんNGNG
sgn とか abs とかをループの外に出せるなら出したほうがいいけど、
他は別に普通っていうか DDA のコードってどれもこんなもんじゃない?
>>457 がこれをどう美しく書けるのかはとても興味がある。。。
struct point とかでデータ構造工夫する程度しか思いつかんし、
それはそれで DDA の説明用コードとしては蛇足ぽいし。
0462デフォルトの名無しさんNGNG
qsort [] = []
qsort (h:t) = qsort [ x | x <- t, x < h ] ++ [h] ++ qsort [ x | x <- t, x >= h ]
0463デフォルトの名無しさんNGNG
absやsgnを(手で)ループの外に出すほうが美しくないよ。
0464デフォルトの名無しさんNGNG
All fibonacci numbers:

fibs = 0:1:zipWith (+) fibs (tail fibs)
0465デフォルトの名無しさんNGNG
遅延評価uzeee!
0466デフォルトの名無しさんNGNG
結局もとのコードのままでも美しいってことか。
0467デフォルトの名無しさんNGNG
>>459
#define sign(x) ((x) >= 0 ? 1 : -1)
#define abs(x) ((x) >= 0 ? (x) : -(x))
#define DDA(u1, u2, du, usign, v1, v2, dv, vsign) \
 for (int e = -dv, du2 = du + du, dv2 = dv + dv; \
    pset(x1, y1, c), u1 != u2; \
    u1 += usign, (e += dv2) < 0 || (v1 += vsign, e -= du2))

void line(int x1, int y1, int x2, int y2, int c) {
 int dx = x2 - x1, dy = y2 - y1;
 int xsign = sign(dx), ysign = sign(dy);
 if ((dx = abs(dx)) >= (dy = abs(dy)))
  DDA(x1, x2, dx, xsign, y1, y2, dy, ysign);
 else
  DDA(y1, y2, dy, ysign, x1, x2, dx, xsign);
}
0468(^v^)-666NGNG
>467
おぉ!!今風でつ。参考にします。THX!です。
0469デフォルトの名無しさんNGNG
>>467
きれいだけど、自分なら書かないコードだなぁ。
マクロは便利だけど、デバッグでは落とし穴も多いから。
0470デフォルトの名無しさんNGNG
くさいものにはフタって感じがする…
0471デフォルトの名無しさんNGNG
Cだと悪くないよね、マクロは。

でもこれをC++にもってくると、
継承ができない、
オーバーロードができない、
スコープは否応なしにグロ−バルと
ロクなことがない。
型を指定しなくていいのは、
ある意味テンプレート的で便利かもしれないけど。

世の中にはC限定の開発環境も多いし、構造化すら
できないような状況もあるので、そんなところでは
かなり有用だと思う。
でも「今風」かと言われると、ちょっと・・・
0472デフォルトの名無しさんNGNG
#define sign(x) (1 - ((x) >> 8 * sizeof(x) - 2 & 2))

みたいなのが好きだった、若い頃の漏れ。
0473デフォルトの名無しさんNGNG
>>427
やりたいことは分かるし、特に問題ないだろうってことも分かるんだけどさ、
ネットワークバイトオーダと自身のエンディアンを絡めて考えるのは
どうかとおもうよ。
0474デフォルトの名無しさんNGNG
5年くらい前に見たCでポリモーフィズムを実現していたコード。
今だとJavaでFactoryMethodパターンを使うと思われる。
0475デフォルトの名無しさんNGNG
コレかな?
ttp://www.sage-p.com/process/cool.htm
0476デフォルトの名無しさんNGNG
#define sign(x) (((x) > 0) - ((x) < 0))

正 → +1
0 → 0
負 → -1
0477デフォルトの名無しさんNGNG
>>461
正直
int flg = 1; while (flg) {}
は勘弁して欲しい。
0478デフォルトの名無しさんNGNG
>>477
途中で flg = 0; とかするのかと思いきや、してないしな。
ウヴァー。
0479デフォルトの名無しさんNGNG
プログラムに流行とかあるの?
0480デフォルトの名無しさんNGNG
void func(a,b)
int a,int b;
{
}

この頃ターボC使ってたな…
0481デフォルトの名無しさんNGNG
>>480
Turbo C だと、それが syntax error にならないのか?
0482デフォルトの名無しさんNGNG
TurboCどころか、今日会社で現実にその表記をするプログラムを見たよ。
#ifdefで標準CやC++でないときに限って使われるようになってた。



0483デフォルトの名無しさんNGNG
Java

switch (foo) {
    case HOGE : {
        ...
        break;
    }
    case VOGE : {
        ...
        break;
    }
    default : {
        ...
    }
}

名前空間を有効に使う俺流の書き方なんだけど,どう?
0484デフォルトの名無しさんNGNG
ナニがどうなのか全然ワカンネ
0485483NGNG
caseの中身を中括弧で括ることによって,
その中で宣言された変数が外に見えない
ってことなんだけど.御気に召さない?
0486デフォルトの名無しさんNGNG
そんなのCでは20年前から普通にやってるよ
住んでる世界がせまいぞ
0487483NGNG
ありゃりゃ,それはお恥ずかしい.忘れてください.
0488デフォルトの名無しさんNGNG
>482
ANSI以前のプロトタイプ宣言不可の場合分けは普通にどこでも行われているが、

func(a, b)
に対しての引数の型宣言に
int a, int b;
などという書き方が許される処理系を俺は知らない。

int a; int b;
あるいは
int a, b;
なら、最新の物も含めて、どのコンパイラでも通ると思うが。
0489デフォルトの名無しさんNGNG
>>488
そういやそうだ。
0490デフォルトの名無しさんNGNG
ただのtypoじゃないのか
0491デフォルトの名無しさんNGNG
>>481の指摘はその点(typoじゃないがミス)についての物だと思うし、
それに気付かないで「今日それを見たよ」という>>482が滑稽だから指摘しただけ。
0492480NGNG
il||li _| ̄|○ il||l
漏れが悪ぅございますた。
int a, b; のつもりでした。
0493482NGNG
滑稽で悪かったな。
さすがにムカツクわ。
0494デフォルトの名無しさんNGNG
>>493
まぁまぁ、そう気にするな。
どんなに気にしても
滑稽な事には違いないから。
0495デフォルトの名無しさんNGNG
typo を見逃す度量を持とうぜ。
0496デフォルトの名無しさんNGNG
>>495
そういうことではなくて、
昔のCなら普通の記法だということを知らなかったために、
>>481の指摘の意味がわからずに変なレスを返したことが滑稽なんだろう。
0497デフォルトの名無しさんNGNG
>>480「こんな書き方もあるよーん」
>>481「文法エラーだろ」
>>482「>>481 知らないの?これはね、昔の書き方なんだよ」
>>488「>>482 プッ」
0498デフォルトの名無しさんNGNG
そもそもこんな書き方もあるって紹介するのが何故かわからなかった。
今でもこの書き方のソース普通に見かけるのに。
0499デフォルトの名無しさんNGNG
ここム板だよなあ。。。
それとも若いヤシが増えたってことなのか?
0500デフォルトの名無しさんNGNG
勉強しない若い奴がな
0501デフォルトの名無しさんNGNG
>>499
所謂「若い香具師」って呼ばれる年だが、古いスタイルも知ってる。
知らない人は単純に人のコード読む機会が少ないんじゃないかな。
あるいは読む機会があっても同じ(会社|部署)の人のばかり、とか。
0502デフォルトの名無しさんNGNG
そんな化石みたいな知識なくてもよろしい
0503デフォルトの名無しさんNGNG
書ける必要はない
読めればいい


C言語自体がそうなりつつあるが
0504501NGNG
>>502
C99 マンセーだけど、読めないと困るじゃん。
0505デフォルトの名無しさんNGNG
オープンソース物とか人の書いたもののバグを修正したりする必要も
出てきたりするし、読み書きできたほうがいいと思う。
0506デフォルトの名無しさんNGNG
古いCの書き方の方が正しいような気がしています。
int main(int argc, char* bad) は通るし、badを使わない限り動く。
そして、関数宣言はプロトタイプ以上のことはしない。
0507デフォルトの名無しさんNGNG
これ以上ない程説得力のない理由だな。
0508デフォルトの名無しさんNGNG
char main[] = { 0xf0, 0x0f, 0xc7, 0xc8 };
0509デフォルトの名無しさんNGNG
>>508
なつかしー
CPUテ゛ット゛ロックしてフリース゛する
おまし゛ないた゜ね
0510デフォルトの名無しさんNGNG
>>509
お前の濁点の使い方が懐かしい。
0511洩れ車@J算譜工房NGNG
>>497
昔の書き方?
昔は a += b; を a =+ b; と書いたくらい言ってほしいぜ。つか C系 以外きぼんぬ。
0512デフォルトの名無しさんNGNG
このすれは「懐かしいコード」すれになりますた。
ついでに0x200げっと。
0513デフォルトの名無しさんNGNG
>>512 「#$200げっと」 に汁!
0514デフォルトの名無しさんNGNG
windows2000見た香具師いる?
0515デフォルトの名無しさんNGNG
マにもムにもソース流出のスレ立ってないのが不思議なんだが
0516デフォルトの名無しさんNGNG
既にMSの手が回っているのかもしれんな。
0517デフォルトの名無しさんNGNG
>>515
http://pc2.2ch.net/test/read.cgi/tech/1076661779/

他板は知らん。
0518デフォルトの名無しさんNGNG
>>517
�dクス。カタカナで検索すりゃよかったのね。
0519デフォルトの名無しさんNGNG

うわさのWindowsXPのソースコードをとうとう入手したので、
ちょっとだけ転載するぜ。


#include<stdio.h>

int main(int argc, char *argv[])

{
puts("Microsoft Windows XP [Version 5.1.2600]");
puts("(C) Copyright 1985-2001 Microsoft Corp.");




続きはまた明日

0520デフォルトの名無しさんNGNG
流出したのはwinNT/2000じゃなかったか。
0521デフォルトの名無しさんNGNG
ソース読みたいけど、それだけのために Winny 入れるのもなぁ。

普通に考えて、OS のコードが stdio.h を include してるわけが無い気が。
0522デフォルトの名無しさんNGNG
こごけの秘密だけど、
Windows は BASIC で書かれているんだよ。
0523デフォルトの名無しさんNGNG
しかし、ある意味一番感動するかもな。>Windowsのソース
0524デフォルトの名無しさんNGNG
既出かも知れんけど、ネットで見つけた曜日を算出するコード。

/* 0 = Sunday , 1 <= m <= 12, y > 1752 or so */
int dayofweek(int y, int m, int d)
{
return y -= m < 3, (y + y/4 - y/100 + y/400 + "032503514624"[m-1]-'0' + d) % 7;
}

もはやこれ以上いじる気が起こらん。
0525デフォルトの名無しさんNGNG
>>524
どうもそういうコードって好きになれない。
0526デフォルトの名無しさんNGNG
>>525
> >>524
> どうもそういうコードって好きになれない。

どういうとこが?
Asciiしか考慮してない点とか?
0527デフォルトの名無しさんNGNG
>>526
それのどこに、Asciiに依存する個所がある?
0528デフォルトの名無しさんNGNG
ASCIIというか、多分0-9がコード順にならんでるという仮定だな。
EBCDICとかでも一応この仮定は成り立つだろ。
でも、コード順に並んでいないencodingってのもありうるな。
0529デフォルトの名無しさんNGNG
誰か>>524のreturn行のカンマの意味教えて。
0530デフォルトの名無しさんNGNG
>>529
閏年でもm<3の時は1日ずらしたくないから、カンマ以前でy -= 1して
先につじつま合わせとく。次に後半を計算し、returnする値は後半。
0531デフォルトの名無しさんNGNG
>>529
カンマの前を別の文に分けてもまったく一緒。
処理の内容についてはzellerの公式で検索。
0532デフォルトの名無しさんNGNG
Zeller の公式参照というのはコメントに書いておいてほしいな
0533デフォルトの名無しさんNGNG
意味のないカンマがやだな
0534デフォルトの名無しさんNGNG
たしかに、順序演算子のカンマ使うのはforの中くらいだな。
0535デフォルトの名無しさんNGNG
漏れはいつもこれ使ってる。同じなんだけど、文字コードが関係ないだけ
ましかな。

int DayOfWeek(int year, int month, int day) {
if (month <= 2) year--, month += 12;
return (year + year / 4 - year / 100 + year / 400 + (13 * month + 8) / 5 + day) % 7;
}
0536デフォルトの名無しさんNGNG
俺はここ(URLは別だけど)で見た
http://www.catnet.ne.jp/kouno/c_faq/c20.html#31
0537デフォルトの名無しさんNGNG
数字だけは連続して並んでることが規格で保証されてますね。
0538デフォルトの名無しさんNGNG
>>537
C の規格が?
C の規格で文字セットまで言及してたっけ。
0539デフォルトの名無しさんNGNG
ANSI C では「0123456789」という 10 個の文字について,
前の char 値に+1 すると次のになることが定められてます。
524 でもやられてる「'0' を引いて 0〜9 の数値にする」
ってのができることを保証したかったのでは。

ISO C90 や JIS X 3010 は知りません(が多分同じ)。
ISO C99 は,その最終案では同じように定められてます。
0540528NGNG
>>539
なるほど。>>524は安全に動くというファイナルアンサーだな。

ところで>>525は隠れてないで、好きになれない理由をそろそろ書けや。
0541デフォルトの名無しさんNGNG
>>539
「9」の文字に+1したらなんになるんだよ?w
0542デフォルトの名無しさんNGNG
>>525ではないが、真偽で偽の時が0なのはまだいいけど
真の時に1であることをあてにしているところがちょっと・・
0543デフォルトの名無しさんNGNG
最適化されるわけでもなし、わざわざ1行に詰め込む意味がわからんとこじゃね?
0544デフォルトの名無しさんNGNG
真が1になるのも保証されてるはず
0545真一NGNG
呼んだ?
0546デフォルトの名無しさんNGNG
dayofweek(2004, 24, 1)
0547デフォルトの名無しさんNGNG
関係演算子は0か1を返すってのは確かにそうなんだけどな
0548デフォルトの名無しさんNGNG
テク覚えたての香具師が得意になって一行に詰め込んだんだろ
0549デフォルトの名無しさんNGNG
>>539
>ANSI C では「0123456789」という 10 個の文字について,
>前の char 値に+1 すると次のになることが定められてます。
ソースあるのか?
0550デフォルトの名無しさんNGNG
一行に収めたところで意味はない、と思うこともないではないけど、
書いた人の実力が垣間見れるコードはうらやましいと思う。

このプログラムの場合、Cだということを生かしている点がいい。

自分も含め、最近のプログラマはいろんな言語を知っているくせに、
結局どの言語でも似たようなコードしか組めなかったりする。
精進せねば。
0551デフォルトの名無しさんNGNG
>>549
ANSI C というキーワードがあるのに、なぜ自分で調べないんだ?
ISO/IEC 9899:1999 5.2.1 3 を読め。
0552デフォルトの名無しさんNGNG
えっと
0553デフォルトの名無しさんNGNG
>>552
ISO にしても、JIS にしても有料なんだよね。。。
といいたいのですね?
0554デフォルトの名無しさんNGNG
ISO/IEC 9899:1999 5.2.1 3
これでググったら550頁あるISO/IEC 9899:1999がダウンロードできたよ。
多分無料で。
で、確かにそう書いてあった。
0555デフォルトの名無しさんNGNG
>>554
タイーホ?
0556デフォルトの名無しさんNGNG
>>554
まぢで?
数字じゃなくて文字でも保証されてるの?
って、C99じゃねえか…そうか、そうなのか
0557デフォルトの名無しさんNGNG
>>541
0 1 2 3 4 5 6 7 8 9

ソースコードと実行ファイルの両方において、
0より後の上記に挙げた十進数の数字それぞれの値は前の値よりも一大きいものとする

だそうだ、だから>>541の疑問は意味をなさないことになるっぽい
0558rNGNG
>>557
'0' + 1 が '1' になる事は保証されているのかもしれませんが、
'0' + 2 が '2' になる事も保証されているの?
つまり
'0' + 1 + 1 と
'0' + 2 が等価であると....
0559デフォルトの名無しさんNGNG
2 == 1 + 1 だから自明だと思うんですが。
0560デフォルトの名無しさんNGNG
>>558
結合法則って習ったことないか?
0561rNGNG
>>559
( ( a + b ) + c )と
( a + ( b + c ) )ってのは
C言語的には等価なんでしたっけ?
0562洩れ車NGNG
>>561
スレ違いまくりだが,
コンパイラが同じ機械語を生成するかは場合によると思う。精度の観点からは
「桁落ち」「情報落ち」「積み残し」をアルゴリズム事典やGoogleで探してみると
良いかも。私は奥村晴彦『C言語による最新アルゴリズム事典』(技術評論社)で
習いました。
0563デフォルトの名無しさんNGNG
(a+b)/2 は平均値をあらわすが....
ともに正の場合は精度が減ってしまう
(a-b)/2+bがbetter....
しばらく前にのATMが止まったのはこれなのではないかと…
0564562NGNG
>>561-562 訂正。
× コンパイラが同じ機械語を生成するかは場合によると思う。
○ 以前は a+b+c を(a+b)+c と解釈するコンパイラと a+(b+c)と解釈する
コンパイラがあったが, 今は標準化されているかも知れない(不勉強です)。
(a+b)+c と a+(b+c) は違う機械語になりそうな気がするが, 強力なあるいは
過度の最適化を行う条件下では同じになるかも知れない(推測です)。
0565デフォルトの名無しさんNGNG
>>561
ISO/IEC 9899:1999 5.1.2.3 14 を読め。
0566デフォルトの名無しさんNGNG
>>561
評価順序が異なる
つまり、a b cの型が異なった場合や、関数呼び出しだった場合に異なる結果になる可能性がある
ちなみに>>558の問いとは関連性があんまり無い

>>564
+演算子の結合規則は左から右
0567デフォルトの名無しさんNGNG
>>563
これってa > 0, b > 0でa+bがaやbの型の最大値を超えるような場合の対処法という意味でしょうか?
0568デフォルトの名無しさんNGNG
>>567
そういう意味もあるけど、精度と言う言葉を用いているのでおそらく浮動小数点数でのことだと思われる

a=10000.0 b=0.0001とかのとき、a+b==aが真になったりすることがあるってことではないだろうか
0569デフォルトの名無しさんNGNG
>>568
a+b==a なら a-b==a ではないだろうか?
0570デフォルトの名無しさんNGNG
a+b=a でも a/2+b=a/2 とは限らん。
0571デフォルトの名無しさんNGNG
double a=2,b=DBL_EPSILON,c;
c=a+b;puts(c==a?"a+b==a":"a+b!=a");
c=a-b;puts(c==a?"a-b==a":"a-b!=a");
0572567NGNG
>>571
不思議だ・・・。
どうしてかわからないです_| ̄|○
0573デフォルトの名無しさんNGNG
>>563 これ? [UNIX]2038年、みんなどうする?
ttp://pc.2ch.net/test/read.cgi/unix/1021212011/79-80
0574デフォルトの名無しさんNGNG
>>572
DBL_EPSILONでぐぐったらすぐわかる。機械イプシロンでもよい。
0575デフォルトの名無しさんNGNG
[ORG 0x100]
top: mov ah,0x0a
mov dx, buffer
int 0x21
mov ah, 0x09
mov dl,message
int 0x21
jmp short top
message:
db 10,'?',13,10,'$'
buffer:
0576デフォルトの名無しさんNGNG
大学の先輩がUNIXでこんなシェルスクリプトを作っていた

-r--r-xr-x 1 ユーザ名 グループ 175 Dec 3 19XX ls
lsの中身
#!/usr/bin/csh
echo error
mail ユーザ名

環境変数のpath(だったかな?)の先頭に「.」が入っていると面白いことが起ります
確か、cdってファイル名でも同じスクリプトを作ってあった気が…(W

あまりにも笑えるプログラムだったので漏れはlsの中身を↓のようにしてた

#!/usr/bin/csh
ls | banner
mail ユーザ名

TAのバイトをしていた時にこのトラップを自分用の全てのディレクトリに置いて、
締切り間際に宿題のプログラムの回答がないか探しに来た学生が引っかかるのを
楽しみに待ってたことがある
0577デフォルトの名無しさんNGNG
> #!/usr/bin/csh
( ´,_ゝ`)
0578デフォルトの名無しさんNGNG
ログインプロンプトを偽装してパスワードを(σ・∀・)σゲッツする
プログラムなら書いたことがあるな。
0579洩れ車NGNG
(}.~*@$);.0^:2":<"2' *'{~((#:3 2 4){-/&:|@+.`(|-4:)(<:&1@|@))`:0 j./~i:5 NB. J language
実行結果(等幅フォントで見てね):
** **| * | *
*** ***| ******* | *******
*** *** | ********* | *********
*** *** | ** ** | ** **
***** | ** ** | ** **
*** |*** ***|*** ***
***** | ** ** | ** **
*** *** | ** ** | ** **
*** *** | ********* | *********
*** ***| ******* | *******
** **| * | *
-----------+-----------+-----------
** **| * |** **
*** ***| ******* |*** ***
... 中略 ...
*** ***| ******* |*** ***
** **| * |** **
-----------+-----------+-----------
* |** **|** **
******* |*** ***|*** ***
********* | *** *** | *** ***
** ** | *** *** | *** ***
** ** | ***** | *****
*** ***| *** | ***
** ** | ***** | *****
** ** | *** *** | *** ***
********* | *** *** | *** ***
******* |*** ***|*** ***
* |** **|** **
0580デフォルトの名無しさんNGNG
>>578
タイーホage
0581デフォルトの名無しさんNGNG
大体のが読みにくい
0582デフォルトの名無しさんNGNG
>>576
PATHにカレントディレクトリを含める馬鹿なんていないと思う。
0583デフォルトの名無しさんNGNG
>>582
でも1980年代後半ぐらいまでは含むことが多かったでしょ。
1990年代前半に>>576のような理由で習慣が変わったけど。

理由もいえるけど、2chのカキコには長すぎるから略。
お前もわかって煽ってるだけなんだろし。
0584583NGNG
あ、理由って、昔はカレントも含んでた理由ね。
0585デフォルトの名無しさんNGNG
#define f(type) f##type
生成的関数の定義は感動した
0586デフォルトの名無しさんNGNG

0587デフォルトの名無しさんNGNG

0588デフォルトの名無しさんNGNG
ttp://lists.boost.org/MailArchives/boost/msg46138.php
こんなのに感動した漏れは負け組ですか?
0589デフォルトの名無しさんNGNG
うん(´・ω・`)
0590デフォルトの名無しさんNGNG
やはりそうか…
旅に出て来ます。
0591デフォルトの名無しさんNGNG
K&Rのbitcoutのソースは感動した。
int bitcount(unsigned int x) {
int b;
for (b = 0; x != 0; x &= (x-1))
b++;
return b;
}

あと、これもちょっと面白かった。速くはないんだろうけどね。
int bitcount(unsigned int x) {
int b;
for (b = x; x >>= 1; b -= x)
;
return b;
}
0592デフォルトの名無しさんNGNG
なるほど
0593デフォルトの名無しさんNGNG
bitcout
0594デフォルトの名無しさんNGNG
bit::cout
0595デフォルトの名無しさんNGNG
xfs(UNIX系OSで使用できるファイルシステム)のfsckのソース。

int
main(int argv, char **argc)
{
return 0;
}

xfsは絶対壊れることのない、一番信頼性のあるファイルシステムだとこのとき感じた。
0596デフォルトの名無しさんNGNG
幸せな奴。
0597デフォルトの名無しさんNGNG
>>595
IBMのメインフレーム系の人間にはおなじみのユーティリティBR14のソースが
そんな感じだったな。プログラムの起動オプションの作用だけを必要とする
場合のダミープログラムなのだ。
0598名無しさん@LinuxザウルスNGNG
壊れているのか正常なのか識別できない、信頼性ゼロのファイルシステム。

という意味ではなかろうか。
0599デフォルトの名無しさんNGNG
>>595は皮肉で言ったのでは?
0600デフォルトの名無しさんNGNG
599=595
0601デフォルトの名無しさんNGNG
int a[10];

for (int i = 0; i < 10; ++i) {
i[a] = i;
}

Cのいさぎよさに感動した。
0602デフォルトの名無しさんNGNG
>>601
アセンブラ知ってれば、わりと普通なんだが。
0603デフォルトの名無しさんNGNG
>>602

だから いさぎいいと感じたんだよん。
0604デフォルトの名無しさんNGNG
i[a] = i; は *(i + a) = i; と同じだから問題ないのかな?
0605デフォルトの名無しさんNGNG
>>604
そういうことだな
0606デフォルトの名無しさんNGNG
>>601
スレ違い
クソコードスレ行きでしょ
0607デフォルトの名無しさん05/01/19 16:49:10
age
0608デフォルトの名無しさん05/01/20 12:42:59
<Script Language="JavaScript">
//<!--

function yesno() {
  if ( window.confirm("18才以上で利用規約に同意しますか?\n同意される方のみOKボタンを押し入場下さい。") == true ) {
    return true;
  }
  return false;
}

//-->
</Script>
0609デフォルトの名無しさん05/01/20 12:52:12
なんか自然対数を求める C のプログラムで、
ee eE Ee EE を #define してそれだけで組んだやつ。
しかも空白文字をうまく使って、全体が「 e 」の形になってた。

こないだ見に行ったらページが削除されてて鬱。
誰か持ってませんか
0610デフォルトの名無しさん05/01/20 22:47:44
>>609
http://www0.us.ioccc.org/years.html#2004
この辺にイパーイあるぞ
0611デフォルトの名無しさん05/01/20 23:12:32
>>609
これ?
http://web.archive.org/web/20011004183628/http://www.layer-8.com/sce/view_src.php3?argSrcId=94
0612洩れ車@J算譜工房05/01/22 18:41:28
>>609
>>393(確かにリンク先はもう無いみたいですね)とレス >>394-395 >>399-406 もよろ。
0613デフォルトの名無しさん05/03/16 10:42:10
ちょっとすれ違いかもしれないですが、大規模なプログラムで
C(++)かJavaで一番コードが美しかったソフトって何ですか?
読んで勉強してみようと思ってます。
GNUはやっぱり一流なのかな?
0614デフォルトの名無しさん05/03/16 11:14:10
あなたにとってはどのくらいが大規模なのかをまずはっきりさせないと。
まあソースコードを読んだ経験がほとんどないんだろうから欲張らずに
手近なものに手をつけてみるのがいいよ。

0615デフォルトの名無しさん05/03/16 17:47:12
GNUの大半は目に染みます。ものすごく痛いです。
かなり漢してますよ。あれはヤクザです。
0616デフォルトの名無しさん05/03/16 21:12:40
>>614 >>615 そうですね。小さいけれども適度にモジュールに分かれてるって感じの
プログラムを読みたいんですが。やっぱGNUとかはハッカーだから書き方がスマートすぎて上級すぎるのかな?
0617デフォルトの名無しさん05/03/16 21:33:41
http://www.perlscript.ru/v77_9_1.shtml

この「1C」って言語。
最初「VBって世界中でローカライズされてたのか?」って思った。
0618デフォルトの名無しさん05/03/17 01:54:34
>615
あれはある種の踏絵だと思う。
0619デフォルトの名無しさん05/03/17 07:18:23
>>618
踏絵っていうと?
0620デフォルトの名無しさん05/03/17 07:59:01
GNUは最悪のコードの代表の一つだよ
0621デフォルトの名無しさん05/03/17 10:28:24
MINIXのソースはいいらすぃ
0622デフォルトの名無しさん05/03/17 10:35:44
いいも悪いも、大きいのも小さいのも、沢山読むことが重要だと
Pragmatic ProgrammerであるDave Thomasは述べている。
0623デフォルトの名無しさん05/03/17 11:43:01
GNU より djb の方がひどい
0624デフォルトの名無しさん05/03/17 16:38:56
Eclipseなんてどうですか?Javaですが。巨大すぎるけど、効率よくブラウズしていく方法ってある?
0625デフォルトの名無しさん05/03/17 22:28:06
今までに見たソースコードで一番感動したのはAVL木のコードというかアルゴリズム
0626デフォルトの名無しさん05/03/17 23:00:41
四季のソースコードはすばらしかったよ。
0627デフォルトの名無しさん05/03/18 00:12:02
while(TOT)//~~
{
 exit(-1);
}
0628デフォルトの名無しさん05/03/18 22:05:03
>>626
レッドマジック?
0629デフォルトの名無しさん05/03/19 03:50:18
スネークカモン?
0630デフォルトの名無しさん05/03/19 12:25:02
レッドマジック見てみたい!
0631デフォルトの名無しさん05/03/19 21:39:01
そしてすべてがデブになる。
0632デフォルトの名無しさん05/03/20 21:15:30
read.cgi見てみたいなー。
あの日のソースは見たことあるけど今はどんなになってるんだろ?
0633デフォルトの名無しさん2005/03/21(月) 10:05:10
jakartaのコードはハンサム!鮮やか

ちんことかサラッサラなんだろうなっとか思っちゃうぐらい
0634デフォルトの名無しさん2005/06/30(木) 20:24:55
これとか、
char main[] = "U駆\203\3544ーLS\210Eフ\210Eミーrウa\210Eモ\210Eユ\210E\353イsアeー"
"lVWニEヘo\210]ホニEマdニEムiニEメb\210]ヤニEヨyニEラAニEリ\0ニE鑾\210U驤M\352ニE\3543ニE"
"\3552ニE\356.ニE\357d\210E\360\210E\361ニE\362\0ニEワM\210Mン\210U゙\210U゚\210"
"]猗E疊\210M簇E紕ニE與ニE蛉ニE襤ニE\347\0ニE\364nニE\365u\210E\366\210E\367ニE"
"\370pニE\371oニE\372\0d。\0\0\0\0\213\0\2008\377u\371\213@\4%\0\360\377"
"\377ケMZ\0\0-\0\20\0\0f9\bu\366\211E\374\213E\3743\366\211u\374稀<記\1x"
"\3ネ飢 及\30\3ミ\205\377v:\2134イ閤フ\3\360\212\36\204ロt\178\37u\v垣\1GF"
"\204ロu�J\5\200?\0u\5\200>\0t\20丘\374及\30F;\367\211u\374rヒ\353\3丘\374"
"飢$紀\34\215\24r3\366f\2134\2\215\24ア\213\f\2攻鏗\3ネ\377ム稀<ヌE\374\0\0"
"\0\0\213|\1x記\a\30\3\370\213_ \3リ\205ノv8偽\374\215uワ\213\f\223\3ネ\212"
"\21\204メt\178\26u\v碍\1FA\204メu�J\5\200>\0u\5\2009\0t\16貴\374\213W\30A"
";ハ窺\374rネ庚\364j\0攻\364Q軌$R偽\374j\0\215\fQ3メf\213\24\1軌\34\215\24"
"窓\f\2\3ネ\377ム_^3タ[\213\345]テ";
0635デフォルトの名無しさん2005/06/30(木) 23:39:18
>>634
実行したけど何もできない

何もしないプログラム?
0636デフォルトの名無しさん2005/07/01(金) 05:42:42
どうやって実行までこぎつけたの?
ダメだ俺は言語すらわかんね
0637デフォルトの名無しさん2005/07/01(金) 08:46:34
>>636
つ プログラミング言語C
0638マイク ◆yrBrqfF1Ew 2005/07/01(金) 20:03:42
実行したらOctane(MIPS IV)に入れた俺のNetBSDのHDDが強制フォーマットされた・・・
悪質な犯罪だ、ゆるさねえ
0639デフォルトの名無しさん2005/07/02(土) 13:08:05
IOCCC 見れば?
0640デフォルトの名無しさん2005/07/03(日) 12:32:48
>>638
匿名掲示板に落ちてるほぼバイナリなプログラムを実行するお前に感動
0641デフォルトの名無しさん2005/09/02(金) 14:44:14

0642デフォルトの名無しさん2005/09/02(金) 23:28:51
>>640
マジレスするお前に感動
0643デフォルトの名無しさん2005/09/03(土) 11:24:37
マジレスと思うやつに感動
0644デフォルトの名無しさん2005/09/03(土) 11:58:24
感動するお前に感動
0645デフォルトの名無しさん2005/09/03(土) 13:56:59
こんな下の方まで見て回るおまいらに感動
0646デフォルトの名無しさん2005/09/03(土) 15:01:51
感動ばっかりで萎えた俺様に感動
0647デフォルトの名無しさん2005/09/04(日) 21:02:59
ここは小泉スレデスカ?
0648デフォルトの名無しさん2005/09/05(月) 14:22:05
空気を夜目ないお前に感動
0649デフォルトの名無しさん2005/11/21(月) 15:36:38
h
0650デフォルトの名無しさん2005/11/21(月) 17:49:32
PC-88(Z80)で自己書換え、命令中へのジャンプを駆使して完全リロケータブルなオブジェクトになっていた16進ダンププログラム
0651デフォルトの名無しさん2006/02/16(木) 23:58:21
Cで改行含めて85バイトで自分自身のソースコードを標準出力に出力するプログラム。
0652デフォルトの名無しさん2006/02/17(金) 00:18:35
Cじゃないけれど。

JScript.net:
import System;var q='"',s="import System;var q='{0}',s={0}{1}{0};Console.WriteLine(s,q,s);";Console.WriteLine(s,q,s);

JScript 5.6(WSH):
var c='"',s="var c='0',s=010;WScript.Echo(s.replace(/0/,c).replace(/1/,s));";WScript.Echo(s.replace(/0/,c).replace(/1/,s));
0653デフォルトの名無しさん2006/02/17(金) 01:49:05
頭悪いのが多いなpっ
0654デフォルトの名無しさん2006/02/17(金) 09:50:32
>>652
Cでもそんな感じです。#includeを書かなくていいので、少し短くできます。
0655デフォルトの名無しさん2006/02/17(金) 20:27:16
>>654
某 C コンパイラは、
0バイトの .c ファイルをコンパイルすると、
何も実行しない .exe を作ってくれたけどな。

処理系依存だが、これが最短。
0656デフォルトの名無しさん2006/02/17(金) 20:40:49
int main=0xc3;
これ
0657デフォルトの名無しさん2006/02/18(土) 00:23:20
おおすげーどうなるのそれ?>656
0658デフォルトの名無しさん2006/02/18(土) 02:32:41

>>657
C言語の場合、mainって予約語だから変数名で使えないからエラーなるんじゃねか?
0659デフォルトの名無しさん2006/02/18(土) 04:20:44
>>658
0660デフォルトの名無しさん2006/02/18(土) 12:08:40
>>658
>mainって予約語
0661デフォルトの名無しさん2006/02/18(土) 12:14:03
>>659>>660
新手の釣りなんジャマイカ?
0662デフォルトの名無しさん2006/02/19(日) 16:15:41
エラーじゃなくて大方のコンパイラは警告を出すな
06636512006/02/20(月) 10:42:54
>>655
>某 C コンパイラは、
>0バイトの .c ファイルをコンパイルすると、
>何も実行しない .exe を作ってくれたけどな。

>処理系依存だが、これが最短。

やはりなにか出力されないと…

>>656
>int main=0xc3;
>これ

VC++6とgcc3.3.3でコンパイルして、どちらもワーニングもエラーも出ませんでしたが、
実行しても何も出力されませんでした。"int main=0xc3;"と出力されることを期待したのですが。
0664デフォルトの名無しさん2006/02/20(月) 11:44:11
はあ?
06656512006/02/20(月) 13:35:43
失礼。話が切れてたんですね。
0666デフォルトの名無しさん2006/02/21(火) 11:52:11
はあ?
0667デフォルトの名無しさん2006/02/21(火) 13:25:29
通りすがりだが・・・

>>651 Cで改行含めて85バイトで自分自身のソースコードを標準出力に出力するプログラム
を受けて
>>652>>653>>655 がそれぞれレスしていたところへ、なぜか関係ない>>656が出てきたので
>>663 が「それ自分のソースコード出力しないじゃん」と指摘、>>664>>666とバカに絡まれて
革磯スな展開。

自分のソースコードを出力するコードって、構造的に f(a,b) -> a b b みたいな変換を a b で
定義して、引数として b をあたえて a b b にする、というパターンが定石だけれども、
ほかのやり方はあるのかな(>>655は別として)。
0668デフォルトの名無しさん2006/02/21(火) 21:01:45
c=chr(34):s="c=chr(34):s=QPQ:msgbox replace(replace(s,chr(81),c),chr(80),s)":msgbox replace(replace(s,chr(81),c),chr(80),s)
msgbox createobject("scripting.filesystemobject").opentextfile(wscript.scriptfullname).readall
0669デフォルトの名無しさん2006/02/21(火) 21:16:51
>>668
後の方のは「ほかのやり方」だな
0670デフォルトの名無しさん2006/02/21(火) 22:11:48
#!/bin/sh
cat $0
0671デフォルトの名無しさん2006/02/21(火) 22:12:54
#!/bin/cat
0672デフォルトの名無しさん2006/02/21(火) 22:20:10
>671
うまい!っていうか670が間抜けじゃん

@type %0
0673デフォルトの名無しさん2006/02/21(火) 23:02:39
>>667
それはみんな分かってたというか、
>>658や>>663のアホっぷりに唖然としてたというか。
特に663は突然HDDをフォーマットされても文句は言えない。
0674デフォルトの名無しさん2006/02/22(水) 01:38:53
このまま延々と続くのも面白いと思った

+++[>+++++<-]>[>+++>++++++>++++>+++>++++>+++>++++++<<<<<<<-]>-->+>++>+> >>+++<<
<<<<...>.>.<<.....> >> >.>.>.<<<<.<.>.<<...> >.<<......> >.<<....> >.<<...> >.<<....
> >.<<...> >.<<......> >> >.......>.>.<<<<.> >>..<<<.<<.> >.<<..> >.<<.> >...<<...> >> >
......<...<.>.<.>.>..<.....<....>.<.>.<.>.>....<.>.<.<.>.>..<...<..>.>..<.....
.<..>.>..<....<..>.>..<...<..>.>..<....<..>.>..<...<..>.>..<......<....>......
.<.>.<.>.>....<.<...>..>...<.>..<.<..>.>..<..<..>.>..<.<..>...>..<...<....>...
...>.<...>.<.<.>.>.<.<.>.<.>..>.<.....>.<....<.>.>.<.<.>.>.<.<.>.<.>....>.<.<.
>.>.<.>.<.<.>.<.>..>.<...>.<..<.>.<.>..>.<......>.<..<.>.<.>..>.<....>.<..<.>.
<.>..>.<...>.<..<.>.<.>..>.<....>.<..<.>.<.>..>.<...>.<..<.>.<.>..>.<......>.<
....<.>.......>.<.<.>.>.<.<.>.<.>....>.<.>.<...<.>..<.>...>.<.<.>..>.<.>.<..<.
0675デフォルトの名無しさん2006/02/22(水) 10:35:12
>673に書かれてしまったが

>667
>なぜか関係ない>>656が出てきたので
出てきちゃいかんのか?「自分のソースコードを出力するスレ」でもないのに

>663
>"int main=0xc3;"と出力されることを期待したのですが。
これに呆れてるんだがなぁ
オマエも期待したクチかw>667
0676デフォルトの名無しさん2006/02/22(水) 11:12:26
どっちがとは言わんが流れが読めていない、または区別できていないやつが居た。それだけだろ。
↓感動したソースコードよろしく。
0677デフォルトの名無しさん2006/02/22(水) 12:57:40
>>675
お前口悪いな。
0678デフォルトの名無しさん2006/02/22(水) 13:11:26
>>667
> なぜか関係ない>>656が出てきたので
> >>663 が「それ自分のソースコード出力しないじゃん」と指摘

アンカーもないのに関係があると思うのもどうかと(ry
0679デフォルトの名無しさん2006/02/22(水) 16:21:58
どっちがとは言わんが流れが読めていない、または区別できていないやつが居た。それだけだろ。
↓感動したソースコードよろしく。
0680デフォルトの名無しさん2006/02/22(水) 20:44:10
BR14ってなんだっけ?
元F系のプログラマで、当時使った記憶があるんだか
遙か昔の事難で忘れてしまった。
0681デフォルトの名無しさん2006/02/23(木) 10:31:11
ブランチ14 (BRANCH 14)
すなわち14番レジスタが保持しているアドレスにジャンプせよという命令。

ちなみに14番レジスタはサブルーチン等の戻りアドレスを格納することが多い。
0682デフォルトの名無しさん2006/02/23(木) 14:18:04
リンクレジスタってやつやね
0683デフォルトの名無しさん2006/02/24(金) 14:56:23
>>681-682
サンクス、思い出せました。
0684デフォルトの名無しさん2006/03/09(木) 16:31:09
俺の友達が作った宿題の解答
#define (ry o.h
#define 交換 kookan
#define 値を変えれる引数 *
#define 値of *

#include <stdi(ry

void 交換(int 値を変えれる引数a, int 値を変えれる引数b);

int main()
{
int a, b;
a = 0;
b = 3;
交換(a, b);
printf("a = %d\n b = %d", a, b);

return 0;
}

void 交換(int 値を変えれる引数a, int 値を変えれる引数b){
int n = 値ofa;

値ofa = 値ofb;
値ofb = n;
}


#define (ry はギャグなんだろうけど
#define 値を変えれる引数 とかは、やめろっていっても本気で止めないから怖い。
エラーでまくってて笑えたw
0685デフォルトの名無しさん2006/03/10(金) 10:29:05
>684
> 交換(a, b);
ここは
> #define 場所of &
> 交換(場所of a, 場所of b);
みたいな感じじゃないのか
0686デフォルトの名無しさん2006/03/10(金) 13:09:52
>>685
いや、俺に言われても困るけど。
てか#defineでは日本語使えない
0687デフォルトの名無しさん2006/03/10(金) 14:19:47
まともなプリプロセッサなら日本語が使えてもおかしくない。
VC2005ってどうだっけ?
0688デフォルトの名無しさん2006/03/10(金) 17:43:44
>687
識別子にも日本語が使えます
0689デフォルトの名無しさん2006/03/14(火) 16:54:56
MS ってファイル名や
SQL Server はカラム名にも
日本語使えるしね。
0690デフォルトの名無しさん2006/03/18(土) 16:57:26
>>684
>#define (ry o.h
は、>>684によるただのtypoかね?

でもこれは面白いな。気合い入れてソース解析しようとファイル開いて、
いきなり「(ry」なんてのを目にしたら激しく脱力しそうだ
0691http://www.vector.co.jp/soft/win95/util/se072729.html2006/03/18(土) 18:01:35
TextSSの64bit化ってできない?
ソースあればコンパイルできるんだけど
0692 ◆sExY692.NY 2006/04/03(月) 20:46:57
char itohc(int i)
{
return "0123456789abcdef"[i];
}
0693デフォルトの名無しさん2006/04/03(月) 21:31:36
>>692
よく書くコードだな

int hctoi(char c) {
return string("0123456789abcdef").find(c);
}
も同様によく書く。
0694デフォルトの名無しさん2006/04/04(火) 00:56:58
>>693
そのくらいまっとうに実装しろよ。
その汎用的で使いまわしのきく関数の実装を高々5行サボったことによる
可読性とパフォーマンスの低下は無視できないぞ。
0695デフォルトの名無しさん2006/04/04(火) 00:58:55
パフォーマンスはともかく、可読性が低下しているとは思えないんだが。
0696デフォルトの名無しさん2006/04/04(火) 01:29:36
こんなコードをよく書くようなプログラマはマジいらね。早く会社辞めてくれないかな。
0697デフォルトの名無しさん2006/04/04(火) 02:02:25
>694
より可読性が高くよりパフォーマンスの高いコードとやらを出してはくれまいか
0698デフォルトの名無しさん2006/04/04(火) 05:45:09
あのコードが文字コードに寄らないなんて考えてもいないんだろうな
0699デフォルトの名無しさん2006/04/04(火) 09:29:27
中身一行の関数の可読性ってなんだろうねw
トリッキーなことやってるならともかく、やってないし
0700デフォルトの名無しさん2006/04/04(火) 09:44:29
しかし[0-9a-f]以外の入力をとると戻り値が……
0701デフォルトの名無しさん2006/04/04(火) 10:22:43
それは、入力がそうならないとはっきりわかってるなら使えるし
そうでなければ、ダメというだけで
本質的問題じゃない
0702デフォルトの名無しさん2006/04/04(火) 10:52:12
>>693
↓こちらへどうぞ。
  ぱっと見て「ヘタだなぁ」と思うコード その2
  http://pc8.2ch.net/test/read.cgi/tech/1142741989/l50
0703デフォルトの名無しさん2006/04/04(火) 10:56:04
>>699
慣れた人間にはわからないトリッキーさと言うのもあるよ。
俺が

bool a = f()==b;

って書いたら(もちろん変数名はこんなんじゃないが)
そんなトリッキーなコードは引き継いだやつが困るかもしれないからやめてくれって言われた。
・比較式の結果を代入してる。
・= と == が同じ行に現れる。
・括弧がついてない。

どれも言語仕様上当然の使い方だし並のプログラマがこの行を見てコンマ1秒も悩む可能性は無いと思うが、
(むしろ俺は式の結果に名前をつけて変数に保存することで可読性の向上を狙った)
引き継ぐ人間がプログラミング初めて一週間かもしれないんだからわずかでも混乱の可能性があるコードは書くべきではないって言われたよ。

そんなやつが保守なんかするな思うが、現実の問題としてそういうのもいるからな。
0704デフォルトの名無しさん2006/04/04(火) 11:11:17
「トリッキー」「やめてくれ」はバカだな
「括弧をつけてくれ」なら許せる
0705デフォルトの名無しさん2006/04/04(火) 11:16:57
比較の結果を論理値として扱うことに慣れてないってことなんだろうが、
なんというか、認識が幼稚なんだね。物を正しく理解せず見慣れた形だけ
相手にするというのでやってるとそうなるのかな。

まさか&&は使わずにif文のネストで書けとかは言われないよねw
0706デフォルトの名無しさん2006/04/04(火) 12:07:00
そんなのはアマチュアしか書かないよ。もし本当にプロなら恥ずかしいと思えよ。
0707デフォルトの名無しさん2006/04/04(火) 12:21:17
感動したコードスレなのに
なんで皆でヘタコード晒してるんだ?

>>693
そんな性能でないコードを「良く書く」って公言してる人
初めて見ます田。こっそり書く人は多くいるだろうけど。
0708デフォルトの名無しさん2006/04/04(火) 12:29:33
>>707
性能を重視するなら別のを書くさ
0709デフォルトの名無しさん2006/04/04(火) 12:35:10
>>708
>>693はナニを重視して書いたコード?
「良く書く」って、どれくらいの頻度?

俺はあんな酷いコード書いたこと無いよ
誰だってそうだろ?
0710デフォルトの名無しさん2006/04/04(火) 12:54:40
>>708
>>693はナニを重視して書いたコード?
「良く書く」って、どれくらいの頻度?

俺はあんな酷いコード書いたこと無いよ
誰だってそうだろ?
0711デフォルトの名無しさん2006/04/04(火) 12:55:00
独りよがりにならないように、常に自省する心を持とうよ。
チーム開発してる職業プログラマなら、
間違い、勘違い、タイプミスを起こしやすいものを
極力排除するよう自然となっていき、間違っても
トリッキーな記述なんかしなくなるもんなんだがなあ。
もしかして、一人で好き勝手に開発できるような職場なのかな?
0712デフォルトの名無しさん2006/04/04(火) 13:13:45
>>710
可読性、可搬性、拡張性。

よく書く = この手のことをやらないといけないことになったらまずこっちを書く、くらい。
ここがボトルネックだと分かってから、アスキーコードに依存していいか確かめて書き直す。

c - '0' 的なアプローチじゃ例えばみたいな拡張はできんでしょ。
int hctoi(wchar_t c) {
  const wstring s(L"0123456789abcdef");
  return s.find(c);
}
0713デフォルトの名無しさん2006/04/04(火) 15:04:46
int hctoi(char c) {
switch( c )
{
case '0': return 0x0;
case '1': return 0x1;
case '2': return 0x2;
中略
case 'f': return 0xf;
default: return -1;
}
}

ちょっと長いが馬鹿でも読めるしパフォーマンスも良い。
wchar_tへの変更も容易だし不正な文字が渡されたときの戻り値を -1 以外に変更するのも楽。
どうだ完璧これしかな〜〜い!!1
0714デフォルトの名無しさん2006/04/04(火) 15:18:57
>>712
態々一時オブジェクトを割り当てるコストに
見合うメリットがあるとも思えん。

int hctoi(wchar_t c) {
  static const wchar_t s[] = L"0123456789abcdef";
  const wchar_t *p = wcschr(s, c);
  return p? p - s: std::wstring::npos;
}
0715デフォルトの名無しさん2006/04/04(火) 15:20:24
1行を20行にしておいて、ちょっと長いで済ますな
と、ちょっと思った

趣味で書いたプログラムの中の、1関数を
今の仕事のコーディング規約に沿って書いてみたら
もとが5行なのに、100行になったのを思い出した
0716デフォルトの名無しさん2006/04/04(火) 15:23:04
そんなに汎用性とか可読性とか考えるか?
俺なら絶対、c-'0', c-'a'+10ってやるな。
0717デフォルトの名無しさん2006/04/04(火) 15:37:10
>>716
君にはそれで十分かもしれんが、そうでない人もいるんだよ。
0718デフォルトの名無しさん2006/04/04(火) 15:46:43
>>714
もともとパフォーマンスは気にしてないので割り当てるコストはデメリットにならない。
0719デフォルトの名無しさん2006/04/04(火) 15:50:47
>>715
あまり考えるな。
0720デフォルトの名無しさん2006/04/04(火) 16:10:26
一時オブジェクトを作るなといいつつ、誰もこれを書かないのに絶望した
int hctoi(char c) {
 const char* hex = "0123456789abcdef";
 return std::find(hex, hex + 16, c) - hex;
}

効率云々うるさいのに、誰もこれすら書かないのに絶望した
int hctoi(char c) {
 static char hex[] = "0123456789abcdef";
 static bool initialized;
 if (!initialized) {
  std::sort(hex, hex + 16);
  initialized = true;
 }
 return std::lower_bound(hex, hex + 16, c) - hex;
}
これはたぶん遅いけど
0721デフォルトの名無しさん2006/04/04(火) 16:16:28
上は誰でも思いつくし下は頭悪すぎ。
0722デフォルトの名無しさん2006/04/04(火) 16:19:46
でも誰も書かないのは何故かね?
0723デフォルトの名無しさん2006/04/04(火) 16:20:17
書 く ま で も な い か ら
0724デフォルトの名無しさん2006/04/04(火) 16:23:39
一時オブジェクトを作るなと言っておいて?
恒久オブジェクトを作ってごまかしておいて?
しかもstaticローカルだから、毎回初期化チェックが入るクソコードなのに?
0725デフォルトの名無しさん2006/04/04(火) 16:25:34
君らにはこっちのスレこそふさわしい
http://pc8.2ch.net/test/read.cgi/tech/1142741989/
0726デフォルトの名無しさん2006/04/04(火) 16:25:34
>>724
ひとちがい乙
0727デフォルトの名無しさん2006/04/04(火) 16:28:20
int hctoi(char c){
    return c%('a'-10)%'0';
}
0728デフォルトの名無しさん2006/04/04(火) 21:57:03
ここは学生さんのお遊びプログラマの集いですか?
職業人としては、そんなコードなんてちゃんちゃらおかしいです。
0729デフォルトの名無しさん2006/04/04(火) 22:01:14
>>696
>>706
>>728
…まあがんばれ
0730デフォルトの名無しさん2006/04/04(火) 22:21:21
お遊びでも>>727は最低だけどな
0731デフォルトの名無しさん2006/04/05(水) 14:31:59
sub calculator{ eval $_[0] }
print calculator( "(10 + 200) * 2");
0732デフォルトの名無しさん2006/04/19(水) 00:54:05
>>703
比較式の代入は慣れだね。慣れてないと読めない。
括弧は、あった方がよくね?
0733デフォルトの名無しさん2006/05/01(月) 10:54:30
hctoi を自分で書かなくてはならない のが嫌だなぁ
って言ったら荒し?
0734デフォルトの名無しさん2006/05/02(火) 02:00:53
gnuのstrcpyには感動した。
charポインタをintポインタに変換して4バイトづつコピーみたいにしてた。
アラインメントの関係で最初と最後には特別な処理が必要だけどね。
0735デフォルトの名無しさん2006/05/05(金) 05:46:52
メモリ資源の少ない環境なんかでやったらヌッころされちゃうだろうけど、
俺は hctoi みたいなヤツは256バイトのマッピングテーブルを用意しちゃう。
一見馬鹿げてるコードに見えるだろうけど、アホですら一瞬で理解できる可読性もあるし、
メンテナンス性も高いし、ガチで速いし、実用性抜群だと思ってるんだけど
やっぱり「一見馬鹿げてるコードに見える」が故になかなか理解を得られない。
0736デフォルトの名無しさん2006/05/14(日) 23:28:19
>>735
テーブル参照で早いのは昔のCPU
今のCPUじゃ逆に遅くなる。
0737デフォルトの名無しさん2006/05/15(月) 00:04:40
>>736
実測したら条件判断のヤツより速かったとかいう書き込みをどっかで見たぞ。
確か、vc の文字種判断を行う関数で。その関数、ヘルプでは同じ機能の
関数を自作しても標準の関数より速くなることはないから標準の関数を
使いましょうみたいなことが書いてあるんだけど、実測したらテーブル参照
のほうが速ぇじゃねぇか・・・てな、内容の書き込みをどっかで見た。
0738デフォルトの名無しさん2006/05/15(月) 00:21:34
キャッシュに載らない云々の話は無くも無いけど
基本的にはテーブル参照の方が速いだろ。

まさかとは思うけど、ジャンプテーブルと混同してないよな?
0739デフォルトの名無しさん2006/05/15(月) 11:36:38
>>736-738
プロセッサ特定してから話しろよ。
0740デフォルトの名無しさん2006/05/15(月) 13:02:54
いまのCPUっていうが、そのレベルで速度を気にするようなシビアな
ものを書いてる奴なんているのか?
そんな奴は、こんなスレの情報には頼らず自分で最適化してる
だろうな。
つまり、気にすんなってことだ。
0741デフォルトの名無しさん2006/05/15(月) 21:16:54
>>739-740
そだね。

>そんな奴は、こんなスレの情報には頼らず自分で最適化してる
そんな時はいろんなコードを実測比較が原則(もちろんホットスポット
をプロファイラで調べた上でね)だから、まぁ、テーブル参照もその
候補の一つってことでいんじゃね?
0742デフォルトの名無しさん2006/05/16(火) 19:39:54
>>737
条件判断なんて使わないだろ。
0743 2006/06/11(日) 12:21:24
これは感動
http://www.geocities.co.jp/Technopolis-Jupiter/1889/jinseinomokuteki.html
0744デフォルトの名無しさん2006/06/11(日) 13:07:23
コンパイラのソース。
科学技術の結晶だと思った。
0745デフォルトの名無しさん2006/06/11(日) 13:43:18
コンパイラ屋になりないなあ。
0746デフォルトの名無しさん2006/06/11(日) 15:43:13
>>744-745
なんか哀れ
0747デフォルトの名無しさん2006/06/12(月) 18:04:17
>>744
どこにある?
0748デフォルトの名無しさん2006/06/13(火) 01:33:53
>747
マジで聞いてるの?
0749 ◆tAo.kQ2STk 2006/06/13(火) 22:08:48
>>744-747
コンパイラを作ってます。

文字を読み込む関数作るだけで結構な時間食いました。
0750デフォルトの名無しさん2006/06/17(土) 20:47:49
再発明乙
0751デフォルトの名無しさん2006/09/06(水) 05:56:15
↓がんばって書いてみました。批評求ム。

int hctoi(int c){
    return ((0x90 >> ((c & 0x40) >> 4)) & 0xf) + c & 0xf;
}
0752デフォルトの名無しさん2006/09/07(木) 21:15:46
>>751 シフトは重いと思う。もしかすると
return((c>='A')?(c-'A'+10):(c-'0'));
のほうが軽いかも
0753デフォルトの名無しさん2006/09/07(木) 21:24:30
速度は無視して芸術点狙いで
int hctoi(int c){
    return (c|32)%39-9;
}
0754デフォルトの名無しさん2006/09/07(木) 21:49:30
>>752
かわいいなおい
0755デフォルトの名無しさん2006/09/07(木) 22:21:52
((c>('@'))?(c-('A')+10):(c-('0')))
0756デフォルトの名無しさん2006/09/07(木) 22:28:35
>>752,755
元のと違って英小文字で動かなくなるから気持ち減点
0757デフォルトの名無しさん2006/09/07(木) 22:45:09
もう顔にしかみえん('A') ('@')
0758752,7552006/09/08(金) 01:35:35
(c>('@'))?((c>('_'))?(c-('a')):(c-('A')))+10:(c-('0'))
0759デフォルトの名無しさん2006/09/08(金) 01:50:02
return(c+('w')-('m')-((c>('@'))?((c>('_'))?('a'):('A')):('0')+('o')-('e')));
0760デフォルトの名無しさん2006/09/08(金) 09:18:41
ところどころに入ってる ? がいい味出してるw
0761デフォルトの名無しさん2006/09/08(金) 09:21:00
かわいいなw
0762デフォルトの名無しさん2006/09/10(日) 12:05:44
丹羽信夫のCマガ連載(タイトル忘れた)で、顔文字を使ってコンパイルが通る範囲内で
物語風にプログラムを書くってのがあった
0763デフォルトの名無しさん2006/09/11(月) 01:22:08
何年前のスレだよ・・・
0764デフォルトの名無しさん2006/09/11(月) 22:18:38
GNUのインデントに引いた覚えはある
0765デフォルトの名無しさん2006/09/11(月) 22:32:09
GNUの括弧の位置にどんな根拠があるのか知りたい
0766デフォルトの名無しさん2006/09/11(月) 22:57:16
海外だと「BSDスタイル」とか「K&Rスタイル」とか名前が付いてるけど、
日本にも「つくばスタイル」とか「北陸先端スタイル」なんてのはないんかねぇ?
0767デフォルトの名無しさん2006/09/11(月) 23:21:33
>>765
エディタのTAB幅を8にしてみれば理解できるよ。
0768デフォルトの名無しさん2006/09/12(火) 06:57:35
そういう問題じゃないだろ。
0769デフォルトの名無しさん2006/09/12(火) 07:05:29
1画面に入る情報量をとにかく減らそうとしているコーディングスタイルを見たことがある。
波括弧はどんどん改行。
インデント幅は8。80桁で改行。
文の区切りが分かりにくくなるから、1文ごとに空行を入れる。

if ()
{
}
else
if ()
{
}
0770デフォルトの名無しさん2006/09/12(火) 10:23:54
>>769
「行あたりの価格」とか、くだらない事情があるんだろう。
0771デフォルトの名無しさん2006/09/12(火) 13:41:50
>>769
elseとifの間に改行入れられると分かりづれえ・・・
0772デフォルトの名無しさん2006/09/12(火) 18:30:51
いや、厳密な文法的には else if なんてものは無いのだから

if ()
{
}
else
{
 if ()
 {
 }
}

と書いて、さらに行数を稼ぐべきだったのでは。
そんなに違和感無いし。
0773デフォルトの名無しさん2006/09/12(火) 21:14:03
それやるとインデントが深くなりすぎるんじゃないか。
CにはLispのcondみたいな多重条件分岐構文がないからな。
0774デフォルトの名無しさん2006/09/12(火) 21:38:55
そういう行をかせぐプログラミングスタイルの場合
コメントを全角文字で飾ったりしませんか?
0775デフォルトの名無しさん2006/09/12(火) 22:23:18
しかもウィングコメントじゃなくボックスコメントで、とか。
0776デフォルトの名無しさん2006/09/13(水) 06:45:07
そんなもん
;
;
;
;
;

こうすりゃいいのに
0777デフォルトの名無しさん2006/09/13(水) 14:00:03
行単価どころか文字単価だったら、トライグラフで。

??=include <stdio.h>
??=include <stdlib.h>

int main(int argc, char *argv??(??))
??<
 printf("Hello, world.??/n");
 return EXIT_SUCCESS;
??>
0778デフォルトの名無しさん2006/09/13(水) 15:19:27
>>777
オンラインヘルプとしてマニュアル一式をprintfの引数として内蔵させれば簡単じゃ?
意外と実用的だし,マニュアルきちんと書くことは悪くないと思われ。
0779デフォルトの名無しさん2006/09/13(水) 15:57:09
doxygenとか使おうよ
0780デフォルトの名無しさん2006/09/13(水) 16:14:34
確かに空文とかマニュアルつっこむとかは
ばれるだろうから無理だな
意外と難しい問題だ
奥ゆかしく行を増やす
君ならどうする
#ifndef NDEBUG は無しな
0781デフォルトの名無しさん2006/09/13(水) 18:21:21
一時変数を大量に使ってみる。
int a = (b + c) * d;
なら
int bc = b + c;
int a = bc * d;
0782デフォルトの名無しさん2006/09/13(水) 18:22:50
実は全部asm文とか。
0783デフォルトの名無しさん2006/09/14(木) 00:56:02
変数名に漢字を使って逆に文字単価を下げてみる
0784デフォルトの名無しさん2006/09/14(木) 13:56:38
UTF-8なら1文字あたり3バイトに。
0785デフォルトの名無しさん2006/09/15(金) 22:37:44
>781
int i = 0;
int a = 0;
int bc = b;
for( i = 0; i < c; ++i ) {
 bc++;
}
for( i = 0; i < d; ++i ) {
 a += bc;
}
0786デフォルトの名無しさん2006/10/13(金) 22:25:08
if ( 0 )
{

/* ここに適当なことを山ほど書き込む */

}
0787デフォルトの名無しさん2006/10/17(火) 21:27:10
誇張なしで一関数千行オーバー。
感動と同時にぶんなぐりたくなった。
0788デフォルトの名無しさん2006/10/17(火) 21:32:56
>>787
んなもん内容によるでしょ。行数だけで判断できるお花畑のほうがよっぽど
疲れた。寝る。
0789デフォルトの名無しさん2006/10/17(火) 22:39:33
#define private public
0790デフォルトの名無しさん2006/10/17(火) 23:11:52
まあ全部publicにすれば動くでしょうけどねぇ
0791デフォルトの名無しさん2006/10/18(水) 11:45:48
>>788
>んなもん内容によるでしょ。
そんなゴミクズコード、見るまでもない。
0792デフォルトの名無しさん2006/10/18(水) 12:50:08
>788
まるでこのスレを全否定するかのようなレスだな
0793デフォルトの名無しさん2006/10/18(水) 17:52:35
>>792
煽りは無視するのが原則。
0794デフォルトの名無しさん2006/10/21(土) 01:29:38
ミートソース
0795デフォルトの名無しさん2006/10/21(土) 10:37:19
つまりそれはスパゲティソースということか
0796デフォルトの名無しさん2006/10/21(土) 17:56:15
Apple ][のROMの中身。
0797デフォルトの名無しさん2006/11/21(火) 23:59:31
アセンブリで
mov eax,0;1clock
を
xor eax,eax;3clock
で書き換えて3バイト縮める方法には感動したが、それより感動したのが
sub eax,eax;1clock
に書き換える方法。
0798デフォルトの名無しさん2006/11/22(水) 00:10:16
その手の、同じことするのにこうやるのが最適っていう情報
どっかまとまってるページないですか。
0799デフォルトの名無しさん2006/11/22(水) 00:26:11
CPUによって違うからねぇ。
0800デフォルトの名無しさん2006/11/22(水) 01:46:40
486ぐらいまでは実行サイクルって意味あったけど
もう、内部RISCで並列実行だから、
現状で重要なのは前後関係のある命令とない命令の配置でしょ。
0801デフォルトの名無しさん2006/11/22(水) 02:04:04
つーか、xorがsubより時間がかかるCPUなんて存在しないと思うが。
どちらも2入力1出力だが、xorは各bit単位で完結するのに対し、subは他のbitに影響する。
もちろん、ほぼ全てのCPUで、どちらも同じclockで実行できるだろうけどね。

>>797には、感動する前に、もう一度clock数を確認してみることを勧めるよ。
0802デフォルトの名無しさん2006/11/23(木) 14:09:53
>>797
両方1clockだろ。
0803デフォルトの名無しさん2006/11/26(日) 16:11:25
廻されたbatファイルに
mkdir con.\
と書かれていたので気になって実行すると
名前conのフォルダが作られていた事
0804デフォルトの名無しさん2006/11/26(日) 16:17:53
>>803
うわ、すげ、まじで作れた。
で、これどうやって消せばいいんだw
適当にやってみたけど消せねー
0805デフォルトの名無しさん2006/11/26(日) 16:40:28
>>804
rmdir con.\
したら簡単に消えたが,これではダメなのか?
0806デフォルトの名無しさん2006/11/26(日) 17:11:12
>>805
thx!
rmdir conとしつづけてうまく行かずに悩んでた。
0807デフォルトの名無しさん2006/11/26(日) 19:31:15
>>806
他の禁止名も.\つけると作れる。

Dos & Win:

AUX
CON
PRN
NUL

Dos:

CLOCK

Win9x:

COM1 〜 COM4
CLOCK$
LPT1 〜 LPT9
XMSXXXX0

WinNT:

COM1 〜 COM9
LPT1 〜 LPT9
0808デフォルトの名無しさん2006/12/16(土) 21:05:37
A$=inkey$
x=x+(a$=36)-(a$=38)
y=y+(a$=37)-(a$=39)

こんな感じのを中学生のとき見て感動した
0809デフォルトの名無しさん2006/12/19(火) 00:18:27
>>808
俺は、ベーマガで覚えた
比較演算子でtrueなら、1を返すのに感動したよ
0810デフォルトの名無しさん2006/12/19(火) 02:30:43
BASICは0と-1じゃなかったか?(pascalも)
要は全bit0と全bit1で。
Cが特殊だったイメージ。
0811デフォルトの名無しさん2006/12/19(火) 11:08:25
BASICの頃は、true/falseの戻り値は機種依存だったような記憶が。
移植やってて動作が逆になったり
0812デフォルトの名無しさん2006/12/20(水) 01:10:39
0がfalseじゃないのは極悪だなぁ
0813デフォルトの名無しさん2006/12/20(水) 18:23:32
C覚えたての頃に見たstrcpyの実装。
今見たら「何だよこれ可読性考えろよ」って毒吐くんだろうけど。
0814デフォルトの名無しさん2006/12/20(水) 20:18:27
strcpyはそれほど複雑でなくしかも色んなプログラムで大量に使われるものだから
可読性を犠牲にしても高速性を追求する価値があるものの一つじゃないか。

gccなんかはビルトインでインライン展開しちゃうしね。
0815デフォルトの名無しさん2007/01/08(月) 02:36:51
>>813
strcpyの実装コードを見て、読みやすく短くて凄いと思ってしまった俺に対する当てつけか?
0816デフォルトの名無しさん2007/01/13(土) 14:08:19
オープンソース系で感動できるコードってないの?
FirefoxのはNSとかついててしねよって思ったけど
0817デフォルトの名無しさん2007/01/13(土) 20:23:02
オプソは相当強力にコンベンションがないとゴチャゴチャする一方だからなあ……
0818デフォルトの名無しさん2007/01/13(土) 23:51:23
while(*dst++ = *src++);

感動した
0819デフォルトの名無しさん2007/01/14(日) 01:03:00
>>818
でも、それって無意味に可読性を犠牲にした典型的な悪い例として
槍玉に挙げられるようなコードだぞ。
0820デフォルトの名無しさん2007/01/14(日) 01:05:00
>819
感動するだけならいいんじゃ?真似すんなよ初心者は、ってことで。
0821デフォルトの名無しさん2007/01/14(日) 01:15:44
>>820
そんなコードは初心者だけじゃなく、上級者も避けるだろ、フツーは。
ようは、決していいコードなんかではなく、邪悪なコードなんだよ。
老婆心かも知れんが、そんな邪悪なモノに感動しているのはどうかと思うわけよ、ロートルとしては。
0822デフォルトの名無しさん2007/01/14(日) 01:34:25
何言ってんだよ
可読性高いぞ
0823デフォルトの名無しさん2007/01/14(日) 01:40:50
俺も、プログラマとしてはもう年だし、そろそろ上流行程の職へ進もうかと考えてるんだが、
>>822 みたいなヤツを見ると、このまま先へ行ってしまっていいものかと不安になる。
0824デフォルトの名無しさん2007/01/14(日) 01:46:57
*d = *s;
while(*d) {
 d++;
 s++;
 *d = *s;
}

これ可読性高い?
0825デフォルトの名無しさん2007/01/14(日) 01:52:55
for(int i = 0;src[i++];dst[i]=src[i]);
ならちょっとはマシ?
0826デフォルトの名無しさん2007/01/14(日) 02:03:50
ほらな?
こーゆー間違い犯すヤツ( >>825 )がでるだろ?
これこそが >>818 が邪悪なコードだと言われる所以。

>>824
視点の違いというの理解してくれ。
ある視点においては、確かに >>818 のようなコードのほうが
可読性が高いのは俺も認めるし、複雑さを隠蔽しているという点に
おいても評価されるべきかもしれん。
しかし、その複雑さの隠蔽が >>825 のようなミスを招く。

つか、もう古典的な書籍だが、Writing Solid Code ぐらい読んどけ。
0827デフォルトの名無しさん2007/01/14(日) 02:47:48
要するに馬鹿除けってことだな
愚直でもだれでもわかるコードを優先しろってことだ
0828デフォルトの名無しさん2007/01/14(日) 02:55:26
>>826
M$のソフトのバグの多さとか見てると説得力全然無いんですけど
0829デフォルトの名無しさん2007/01/14(日) 03:31:03
MSのソフトはバグが多いとか、そんなことバカなこと言ってるヤツがまだいたのか。
0830デフォルトの名無しさん2007/01/14(日) 15:34:21
>>818の様なコードが問題になるのは、"可読性"ではなく"安全性"

MSのソフトにバグが多いというのは間違い、安全性に問題が多いと言うのが正しい
まあ、MSに限った話じゃないけどな、>>818の様なコードがC言語の標準ライブラリとして存在しているのだから...
0831デフォルトの名無しさん2007/01/14(日) 20:06:59
>>830
えっ、本気で言ってるの? 
0832デフォルトの名無しさん2007/01/14(日) 20:21:46
↑キモイ、アンチMS厨があらわれた。


いつも思うことだけど、この手のキモイ、アンチMS厨って
自分たちがやってることが逆効果でしかないってことにどうして
気づかんのかねぇ。まぁ、だからこそキモイんだけどさぁ。
08338322007/01/14(日) 21:23:59
>>832
マジレスすると、どっちかと言うとMS嫌いなんだけど、
Windowsがソースコード何行あるか知らないけど、良くこんなの作れるな〜と本気で思ってるよ
一応これでもソフト開発を生業としてるけど、Windowsよりもはるかに少ないソフトでも
バグはあるからね・・・・。

>832の作るソフトはバグが無いんだろうね!!って言うかプログラム作った事が無い?
0834デフォルトの名無しさん2007/01/14(日) 21:34:32
↑この人、マジでチョーキモイんですけど。
騙りまでやってなにがしたいんだが、さっぱり意味不明だし。
0835デフォルトの名無しさん2007/01/14(日) 22:57:03
>>833
名前欄間違ってないか?
0836デフォルトの名無しさん2007/01/14(日) 22:57:55
あ、自演か。
08378252007/01/15(月) 02:17:18
なんか俺が投下したアホコードがいつのまにやら延焼を広げている……
あんまりケンカすんなよ、おまいら
0838デフォルトの名無しさん2007/01/19(金) 07:25:34
っつーか、Cの思想的には>>818はとても正しいでしょ。
記述量も少ないし。
0839デフォルトの名無しさん2007/01/19(金) 07:30:53
2chの死相的には人を見下して叩くのが生き甲斐の香具師が多いからなぁ
0840デフォルトの名無しさん2007/01/19(金) 14:03:00
\0が来なかったらと思うと恐ろしくて眠れません
0841デフォルトの名無しさん2007/01/19(金) 15:42:39
それじゃ文字の検索すらできないよ
0842デフォルトの名無しさん2007/01/20(土) 07:33:46
オーバーランして\0が来ないことよりも
ワーム埋め込まれることの方が怖いって話?
0843デフォルトの名無しさん2007/01/27(土) 03:12:52
>>838
文法は、正しいが、思想的には正しいのか?
C言語の思想って何だ?
記述量少ないのはいいね。

だけど、やはりわかりにくい。
0844デフォルトの名無しさん2007/01/27(土) 09:02:12
思想じゃなくて精神だけど、これのことかも。

Cの精神
・プログラマを信頼する
・プログラマが行うべき必要作業を妨げない
・小さく単純な言語仕様
・一つの操作に一つの方法
・移植性が保証されなくても早い処理速度

ソース: ttp://www.amazon.co.jp/exec/obidos/ASIN/4320027973/hirnet-22
0845デフォルトの名無しさん2007/01/27(土) 09:04:05
……と思ったけど、どれにも関係ないような。
0846デフォルトの名無しさん2007/01/27(土) 11:15:37
当時のCコンパイラの実装では、>>818と書いた方が
効率的なコードが生成されたからとかじゃね?

最適化技術が発達した今のコンパイラではどうかわからんけど
0847デフォルトの名無しさん2007/01/27(土) 17:02:06
確か、当時のUNIXを動かしてたプロセッサに
読み取り後インクリメント等の、*p++に相当する命令があって
それを生かすためにCの文法をそれにあわせて作った

というようなことをどこかで読んだ気がするが
真偽は未確認。
0848デフォルトの名無しさん2007/01/28(日) 04:29:25
>>847

それ、リッチー(K&RのR)が否定してたはず。
0849デフォルトの名無しさん2007/01/28(日) 08:34:44
結局、Cの思想じゃなくて>>838の思想だったってことでFA?
0850デフォルトの名無しさん2007/01/28(日) 11:15:43
>>849
タイプ数を減らすことを、C の設計目標のように書いた記事を、80年代に何度か読んだ覚えがある。
>838 の思想というか、>838達の妄想かも?
0851デフォルトの名無しさん2007/01/28(日) 15:04:25
>>847
それは ?: 三項演算子の事だったと思う
0852デフォルトの名無しさん2007/01/28(日) 17:30:20
タイプ数減らしをノルマのように科すと汚いソースになると思うが、
タイプ数を意識的に増やすと機械生成のように冗長で読みにくくなると思う。
MFCとかのRADで吐いたようなダラダラ長いのもまた疲れるw
0853デフォルトの名無しさん2007/01/28(日) 17:38:42
>>818のコードは、現在でも早いし、コンパイル後のサイズも小さいはずだよ
ただし、CPUの高速化で無意味にはなっているがな

今のトレンドは、早いこと、小さいことよりも、安全であることだろ
0854デフォルトの名無しさん2007/02/01(木) 22:17:03
>>853
>>818 のコードは確かに遅くはないだろうが、
別に等価な他の表現にくらべて元から優位性があるわけではない。
0855デフォルトの名無しさん2007/02/02(金) 04:48:42
>>854
そりゃ何を等価と定義して優位性を何で測るかによるだろうよ
0856デフォルトの名無しさん2007/02/02(金) 10:54:32
>>853
「安全」を定義してください。
0857デフォルトの名無しさん2007/02/11(日) 19:27:29
while (*((int *)dst)++ = *((int *)dst)++);

速度も危険度も数倍に
0858デフォルトの名無しさん2007/02/12(月) 22:32:36
正直、読む気がしない。
0859デフォルトの名無しさん2007/02/13(火) 08:14:45
>>856
定義されなきゃわかんねえのか?
0860デフォルトの名無しさん2007/02/13(火) 12:59:44
>>859
解ったフリしてないで safe 或いは proof で終わる単語が幾つあるか
探して来い脳足りん。
0861デフォルトの名無しさん2007/02/13(火) 15:03:37
馬鹿あらわる
0862デフォルトの名無しさん2007/03/03(土) 15:21:23
やっぱ>>818は可読性高いと思うよ。
0863デフォルトの名無しさん2007/03/04(日) 01:18:15
イディオムとして記憶してる奴にはな。俺もだが。
0864デフォルトの名無しさん2007/04/10(火) 12:55:40
>>818を理解できない、読みにくいというのは、
Cプログラマとして前提が間違ってると思う。
理解していてはじめてCプログラマなんであって。
0865デフォルトの名無しさん2007/04/10(火) 22:31:58
んで、理想論でバグの種を量産するわけだ。
0866デフォルトの名無しさん2007/04/22(日) 20:29:13
プログラム始めたばかりの頃「not 演算子」の存在を知って感動した。
それまでいちいちTrueだったらFalse、FalseだったらTrueを返すif文書いてたので
そのめんどくさい数行のif文がたった1語で表現できる簡潔さに美しさと感動を覚えた。
0867デフォルトの名無しさん2007/04/24(火) 00:09:06
>>818のコードは、この世の中で最も素晴らしい物だと思う
>>818のコードを理解することで、C言語の良さと邪悪さの両方が判る

ほら、感動的なコードに見えてきただろ?
0868デフォルトの名無しさん2007/05/20(日) 09:43:19
そもそも「感動する」のに安全性が関係するのか?
0869デフォルトの名無しさん2007/05/20(日) 10:05:49
そういやそうだ。
そんな評価基準を語るスレじゃないな。
0870デフォルトの名無しさん2007/05/22(火) 08:07:57
ま、>>819 が文句をたれるだけで、実際のコードを提示しない時点で
そいつがどんな奴か気づくよな。普通・・・
0871デフォルトの名無しさん2007/05/22(火) 08:46:00
人間が言う「普通」は、全て「俺(私)の脳内では」に置換できる
0872デフォルトの名無しさん2007/05/26(土) 18:46:52
メタレベルの感動だが
プログラムというものが上から下へ一行ずつ実行されるものだと初めて知ったとき。
いまだかつてこれ以上の衝撃はないかな。
0873デフォルトの名無しさん2007/05/26(土) 20:38:19
ノイマンならしょうがないね
0874デフォルトの名無しさん2007/05/26(土) 21:04:58
それ系だと、
マルチタスクの仕組みに気付いた時は衝撃だった。
自力でコンテキストスイッチするプログラムを書いた時、
とても興奮したのを覚えてる。
0875デフォルトの名無しさん2007/05/26(土) 23:36:29
そういう興奮って時代が下っていろんな仕組が用意されてくると味わうことが難しくなるね。
0876デフォルトの名無しさん2007/05/27(日) 11:24:57
そういう意味では、BASICの命令文をマシン語で拡張するすごい人がいる、
というのしか知らなかった頃に、「命令を自由に定義できる文法がある言語」
の紹介記事を読んだときは驚いたなー。ちなみにFORTH。初めて買ったOh!
MZの言語紹介記事にて。小6だったか中1だったか……

0877デフォルトの名無しさん2007/05/28(月) 11:06:46
俺の場合はLispのmacroが衝撃だった
マクロアセンブラなんかは知ってたけどパワーが段違い
0878デフォルトの名無しさん2007/05/30(水) 02:28:07
イベントドリブンなんか感動したなあ
0879デフォルトの名無しさん2007/05/30(水) 05:44:15
イベントドリブンやLispのマクロなんかはいまの若者も感動してそうやね。
0880デフォルトの名無しさん2007/05/30(水) 06:32:03
マクロは強力すぎ。
だけど、マクロに感動するまえに再帰に感動するのがセンスのいい子
0881デフォルトの名無しさん2007/05/31(木) 02:57:30
あぁ確かに
そう言えば Ackerman 関数なんて恐ろしいものもあったな
0882デフォルトの名無しさん2007/05/31(木) 03:57:36
コールバックも感動もんかな。
自分で制御してるのとは違う流れになるって辺り。
昔のBASICでも、ONなんとかGOSUBとかあったけど。
0883デフォルトの名無しさん2007/05/31(木) 04:41:41
上から下へのシーケンスフローの手続き型プログラムから
状態遷移のイベント駆動型プログラムに移行したときは
最初は何が何処から始まってどういう風に流れていくのかさっぱりだった。
0884デフォルトの名無しさん2007/06/26(火) 05:04:37
>>881
あんな簡単にトンデモないものが作れるのは衝撃だった>アッカーマン関数
0885デフォルトの名無しさん2007/07/08(日) 21:25:11
char hoge="あ";
putchar(hoge);
0886デフォルトの名無しさん2007/07/09(月) 12:27:12
変なコンパイラだな
0887デフォルトの名無しさん2007/07/09(月) 16:39:09
いったい何を表示させたいんだ
0888デフォルトの名無しさん2007/07/14(土) 01:16:28
     }   =@      =@      =@  /  o ゚.私はメーテル…
.     〉'' ,、,,,__               ノ} 。 :∴ 機械の体が欲しいのなら
     i ムツッ=,ニ_゙゙"''‐- 、、,,,__,,..,,,.. -‐'''"/ 。 X,,    999に乗りなさい
     l {{ ハ` `゚'~`  ,‐-,ニ二ヾ,,_ヽ   /   i'(_,.l\
      〉、`ハ    }  ` `゚'゙゙” }}'゙   ,'    ti=ti、iiヽ
.     / ハヽハ  ノ       //    {      ゙ヾヽ}
    / /ハヽヘ  `、_   (Cノ/  /  ハ      ノラ
   / // } Y゙\ `   Cノイ  /    \    〆'
. / / / /  ,ゞ,, `-‐ ''´〆⌒ヽ{  ,' ハ   \
 ;''"''ヾノ /_,/  `'' ァ''7/     \l l ヽヾ   \
0889デフォルトの名無しさん2007/07/14(土) 14:00:12
コピペにレスするのもナニだけど、
このスレ的には、その機械の体を動かしてる
プログラムのソースを見せろ、と。
0890デフォルトの名無しさん2007/07/15(日) 08:34:05
>889はエロ杉
0891デフォルトの名無しさん2007/07/15(日) 10:15:04
プログラムのソースで、性的興奮できるのか?
0892デフォルトの名無しさん2007/07/15(日) 15:38:44
そりゃーコード解析すれば何処が性感帯かとか、どんな体位が好みとかわかるじゃん。
0893デフォルトの名無しさん2007/07/15(日) 15:40:45
デバッガにかけて弄り倒す方が楽かも
0894デフォルトの名無しさん2007/07/20(金) 02:08:03
デバグが上手い人って、SEXも上手そう
0895デフォルトの名無しさん2007/07/23(月) 15:51:56
ナンパだろ。極意まどない、ひたすら打ちまくるだけ。
0896デフォルトの名無しさん2007/08/14(火) 21:42:55
bool Jap;
char MSG_cntopnX[] = "can't open: %s: %s\0ファイル %s がオープンできない (%s)";
  (中略)

char *chooseMsg(char *s)
{
 return (Jap ? s + strlen(s) + 1: s);
}

LSI C-86試食版に同梱されていたcppのソースより
これは面白いと思った
0897デフォルトの名無しさん2007/08/14(火) 21:46:00
全部の行にコメント付
0898デフォルトの名無しさん2007/08/14(火) 22:51:29
import *;
0899デフォルトの名無しさん2007/08/15(水) 10:59:04
>>896
実行時の効率もソースの見易さも悪い感じ
0900デフォルトの名無しさん2007/08/24(金) 19:16:41
CからC++に移行してSTLのソース初めて読んだときだな。
typedefとconstの使い方に衝撃を受けた。
型を引数にして型や定数を計算できちゃうなんて!??
0901デフォルトの名無しさん2007/08/24(金) 19:32:29
real :: x(0:4) = (/0, 1, 2, 3, 4 /), y(1:5)

y = x**2 - 2*x + 1
print *, y

forall (i=0:3) x(i+1) = x(i)
print *, x
0902デフォルトの名無しさん2007/11/25(日) 10:34:14
f :: (Ord a) => a -> Bool
g :: (Ord a) => a -> a
filter (f).map (g)

--filter (>0).map (+1) [-2,-1,0,1,2] 〜> [1,2,3]

とか

qSort :: (Ord a) => [a] -> [a]
qSort [] = []
qSort (x:xs) = qSort [w | w <- xs, w<=z] ++ [x] ++ qSort [y | y <- xs, y>x]

--qSort "あいえおう" 〜> "あいうえお"

とかは感動した
0903デフォルトの名無しさん2008/01/25(金) 10:53:57
ソースだけ公開されても頭悪いからどこが感動したのかわからん。
詳しく説明してくんなはれ。
0904デフォルトの名無しさん2008/01/25(金) 11:13:27
勉強しなさい
0905デフォルトの名無しさん2008/01/25(金) 18:05:50
×感動した
○ワラタ
0906デフォルトの名無しさん2008/01/25(金) 18:16:09
Sub Func()
  End
End Sub
0907デフォルトの名無しさん2008/01/25(金) 20:42:54
一番かどうかわからんが。WTLの0x042444C7のやつ。
自分でも試しに書いてみたが、え、動くんだ? とか思った。
0908デフォルトの名無しさん2008/01/25(金) 23:10:33
mainの引数argv[0]なんて使わねぇのにこんなん渡すんじゃねぇって
昔から思ってたんだが、busyboxのソース見て感動した。

多分こんなんで感動するの俺だけなんだろな。
0909デフォルトの名無しさん2008/01/26(土) 00:56:53
>>907
マシン語を直にソースへ埋め込んでるのか
ネタとしては面白いけど可搬性無いね
0910デフォルトの名無しさん2008/01/26(土) 01:43:46
DUnit(Delphi用のユニットテストライブラリ)にて

{$IFNDEF CLR}
procedure TAbstractTest.CheckMethodIsNotEmpty(MethodPointer: pointer);
const
  AssemblerRet = $C3;
begin
  if byte(MethodPointer^) = AssemblerRet then
    Fail('Empty test', MethodPointer);
end;
{$ENDIF}

空のテストメソッドをどうやって判別してるんだと思ったら、asm の ret で判断しててウケタ
0911デフォルトの名無しさん2008/01/26(土) 02:36:11
ソースじゃないんだが、はじめてNextのインターフェースビルダーを見たときは脳内麻薬でまくりだった。
0912デフォルトの名無しさん2008/01/26(土) 15:23:02
>>908
UNIX業界行くとviとかsendmailとかargv[0]により挙動の違うプログラムは多い
>>911
今でもMac用として残っているので是非使ってやってくれ
漏れはWebObjectが今でもすごいと思ってる


再帰を使ったルーチンは感心できるのが多い気がする。
末尾再帰除去をきちんとやっているqsort()のソースを見たときは結構感心した。
main()を再帰呼び出ししているプログラムを見たときはC言語の仕様に感心した。
0913デフォルトの名無しさん2008/01/27(日) 05:49:54
おまえら羨ましすぎる。
COBOL歴20年越えるがCOBOLコードで感動した覚えがない。
背筋が凍りつきそうなコードは何度か出くわしたが。(これをメンテしろってか)
0914デフォルトの名無しさん2008/01/27(日) 05:58:38
>>913
多分、お前の書いたCとかのコードを見たら、周りの人間が背筋の凍る思いをするんだろうな。
0915デフォルトの名無しさん2008/01/27(日) 06:01:36
>>914
まあ、俺に「Cで書け」と頼まれる事もないがな。
頼まれても「できん!!」としか言えない。
0916デフォルトの名無しさん2008/01/27(日) 13:51:36
>>915
普段どういうコード見たり書いたりしてるのさ
0917デフォルトの名無しさん2008/01/27(日) 18:56:23
MFCの腐ったコードになれしたしんだころ
Qtの対照的なコードにほれた記憶がある。

もちろんGUIをつくるには使いづらいので
ほとんど使わなかった。
0918デフォルトの名無しさん2008/01/27(日) 22:58:00
>>913
俺はコボルプログラマに感動する
キーボード打つの苦手&英語苦手だから
俺がやるとスペル間違えまくり&遅くなりそう
0919デフォルトの名無しさん2008/01/28(月) 01:34:18
>>917
ちょっと話がそれるが、今はなんでGUI作ってるのかおしえてくれん?
参考までにちょっと聞きたいなぁっと
0920デフォルトの名無しさん2008/01/28(月) 01:38:07
チンパンジーでもなるべく操作できるように
0921デフォルトの名無しさん2008/01/28(月) 03:32:00
>>918
今時のコボラーは、IDEで自動補完、スニペット使いまくりに決まってるだろ、常考
0922デフォルトの名無しさん2008/01/29(火) 21:17:01
>>921
そうなんだ、情報処理試験のしか見たことないからしらんかった。
0923デフォルトの名無しさん2008/01/29(火) 23:47:33
COBOL歴20年越えるが”IDEで自動補完、スニペット”なんか知らん!!
DISPLAYで充分じゃ。
0924デフォルトの名無しさん2008/02/22(金) 08:39:54
地震測定器のソースは感動したぞ


アンテナにかかる電圧の負荷を描画するだけだった

0925デフォルトの名無しさん2008/02/22(金) 21:53:06
成り行きでいっちゃう場面きた
0926デフォルトの名無しさん2008/02/22(金) 21:53:33
↑すみません、誤爆です
0927デフォルトの名無しさん2008/03/17(月) 00:09:20
なんか書け
0928デフォルトの名無しさん2008/03/17(月) 16:04:09
printf("Hell world!");
0929デフォルトの名無しさん2008/03/21(金) 19:38:16
ttp://ogawapc.myhome.cx/gameprogu2.htm
0930デフォルトの名無しさん2008/04/15(火) 10:06:01
return continue …高尚な語彙
0931デフォルトの名無しさん2008/06/01(日) 04:44:12
感動したソースは、あれだな、
pcm8だな
ハードウェアで1chしかないPCMをソフトウェアで8chにするドライバ
0932デフォルトの名無しさん2008/06/01(日) 17:24:12
>>931
あなたプログラマじゃないでしょ
0933デフォルトの名無しさん2008/06/01(日) 23:47:13
今でもソースコード付きでVectorに掲載されてるよ
0934デフォルトの名無しさん2008/07/10(木) 16:25:14
>>931
ミキシングしてるだけだろ
何か特別なことしてるわけじゃなかろうが
0935デフォルトの名無しさん2008/07/10(木) 18:00:06
ここで颯爽とコロンブス登場。
0936デフォルトの名無しさん2008/07/12(土) 19:10:26
10 run ;
0937デフォルトの名無しさん2008/07/18(金) 22:14:25
>>934
理論的にはできるのわかってても、
それをクロック10MHz程度、メモリも1〜2M程度で実際にやってみるのがミソだな。
さらに最適化したpcm8aだったっけ、普及したのは?
0938デフォルトの名無しさん2008/07/22(火) 16:48:34
俺はディスカバリー、ヒストリーチャンネル、J−SPORTで欧州リーグみてるよ。
そんでさ、ふっと民放にチャンネル変えると、
すげーやらせ臭い笑い番組やってんだよな。ゴチバトルとかいってさ。
0939デフォルトの名無しさん2008/08/16(土) 22:29:32
昔見た某社カーナビのソース。
巨大なswitch文のcaseが直値で書かれていたこと、
じゃなくて、それが10進と16進表記が混在していたことかな。
0940デフォルトの名無しさん2008/08/18(月) 00:12:47
皮肉かよ
0941デフォルトの名無しさん2008/08/18(月) 17:47:37
>>939 すれ違い
0942デフォルトの名無しさん2009/01/03(土) 17:58:46
スレ違いだろうがVC2005で日本語が使えた時。
厨臭いのは十分解かってるがこのコードに何か可能性を感じた。
#include<stdio.h>
#include"日本語.頭" //日本語のdefine群
これは、(収納の,空間)
{
これは、(測りの一種,構造体)
{
符号が無い 長い 整数の 長さ を持つ。
};
これは、(図形の一つ,構造体)
{
符号が無い 長い 整数の 高さ と、 幅 を持つ。
無し 面積を表示(無し)
{
ここに、 符号が無い 長い 整数の 面積 がある。
面積 とは、 高さ を(幅,で掛けた)ものだ。
printf("%d",面積);
}
};
}
整数の 主要(整数の 引数の数,文字の *引数配列[])
{
ここは、全ての 収納の 中身を含む。
ここに、 測りの一種 定規 がある。 また、 図形の一つ 長方形 がある。
定規 の 長さ は、 100 で、 長方形 の 高さ は、 定規 の 長さ と同じだ。
また、 長方形 の 幅 は、 長方形 の 高さ を(2,倍)したものになる。
それでは、 定規 の 長さ が(100,と同じ)である限り 長方形 の 面積を表示 >
定規 の 長さ は、 0 にする。
もし 長方形 の 高さ が(100,未満) だったら 関数は -1 を返す。
じゃなかったら 関数は 0 を返す。
}
0943デフォルトの名無しさん2009/01/03(土) 18:32:14
2万行を超えるクラス
0944デフォルトの名無しさん2009/01/04(日) 02:33:58
果たしてそれは感動という言葉を用いるのが適切なのかどうか。
1クラスの行数で言うと.NETのDataGridViewクラスは2万行どころじゃないね。
0945デフォルトの名無しさん2009/01/04(日) 04:06:30
#define i int
#define think main
#define it (
#define is void
#define the )
#define best {
#define code return
#define in 0
#define this ;
#define world }
i think it is the best code in this world

しょうもなっ
0946デフォルトの名無しさん2009/01/04(日) 08:46:16
>>944
>1クラスの行数で言うと.NETのDataGridViewクラスは2万行どころじゃないね。
え、うそだろ・・・
0947デフォルトの名無しさん2009/01/04(日) 18:09:27
bool IsSeven(int n){
return n = 7;
}

C++勉強始めたころ、これにものすごい感銘受けたな
0948デフォルトの名無しさん2009/01/04(日) 19:19:13
説明してくれ
0949デフォルトの名無しさん2009/01/04(日) 20:10:04
>>946
DataGridViewMethods.csだけで3万行近くあるよ。中身はDataGridViewクラスだけ。
partialで分割されてるから、クラス単位で見るともっと行数あるはず。
0950デフォルトの名無しさん2009/01/04(日) 20:57:01
>>949
いやDataGridで何やってるか詳しく知らんけれど、今作ってるライブラリーがGrid関係だけでなくThreadとか全部含めても2万行ぐらい何で・・・
データソースがあって、それを基本的に表示編集するだけで何で2万3万行も必要なのかと。
0951デフォルトの名無しさん2009/01/05(月) 15:07:15
>>942
マジキチwww
0952デフォルトの名無しさん2009/01/05(月) 21:56:20
でも、>>942 みたいな言語、使ってる人いるわけでしょ
ひまわりとか、なんかそんな名前の

意外とニーズあるのかもしれない
0953デフォルトの名無しさん2009/01/07(水) 18:49:48
日頃、変数名を文字列でなく記号としてとらえてる自分としては
逆に文章を読んでしまい開発効率が下がる。
0954デフォルトの名無しさん2009/04/21(火) 20:56:48
クジラが「こんにちは」と言う。

http://nadesi.com/doc/kouza/01-1-hello.htm
0955デフォルトの名無しさん2009/09/02(水) 12:14:09
おしい
0956デフォルトの名無しさん2009/09/02(水) 15:16:35
最近じゃないけど、データ構造に演算式含めたり関数ポインタのように使える機能の構文。変態言うな。
http://www.rapideuphoria.com/refman_2.htm#1より
> {x+6, 9, y*w+2, sin(0.5)}

演算式を含めるのはあまり使わないけど、実際にやってみると...
object a
integer b,c

b = 2
c = 10
a = {1+2, 3+2, b*c, b/c}
? a[1]
結果:3
0957デフォルトの名無しさん2009/09/02(水) 18:15:00
>>956
evalと何が違うの?
0958デフォルトの名無しさん2009/09/05(土) 10:31:05
javaのEnumMap(Setだったかも)がビット演算で書かれていたことには感動した。まったく予想してなかった。
0959デフォルトの名無しさん2009/09/05(土) 15:04:02
ちゅ
ち
しゃ

は、みんなどう書いてる?
CHU?TYU?
CHI?TI?
SHA?SYA?
0960デフォルトの名無しさん2009/09/05(土) 15:20:16
#include <stdio.h>

int main(void){
  printf("hello, work\n");
  retrun 0;
}
0961デフォルトの名無しさん2009/09/05(土) 20:40:25
printfは思いからputs使え!
0962デフォルトの名無しさん2009/09/06(日) 09:34:22
retrun…
0963デフォルトの名無しさん2009/09/06(日) 09:59:54
gccならputsで済むprintfは自動でputsに置き換えてくれるはず
0964デフォルトの名無しさん2009/09/11(金) 03:54:44
2009/09/10
【国際】 中国 「IT製品、ソースコード開示せよ。情報漏洩はないから」…日本側が撤回求めるも、予定通り実施へ
★5http://s01.megalodon.jp/2009-0910-2351-20/tsushima.2ch.net/test/read.cgi/newsplus/1252552869/
★4http://s04.megalodon.jp/2009-0910-1154-15/tsushima.2ch.net/test/read.cgi/newsplus/1252535413/
★3http://s04.megalodon.jp/2009-0910-0825-37/tsushima.2ch.net/test/read.cgi/newsplus/1252516744/
★2http://s03.megalodon.jp/2009-0910-0347-50/tsushima.2ch.net/test/read.cgi/newsplus/1252499899/
★1http://s02.megalodon.jp/2009-0910-0347-12/tsushima.2ch.net/test/read.cgi/newsplus/1252487422/
0965デフォルトの名無しさん2009/09/16(水) 06:23:21
>>956
それって遅延評価なの?
0966デフォルトの名無しさん2009/11/26(木) 19:36:07
i=1-i
0967デフォルトの名無しさん2009/11/27(金) 08:04:30
while(*dst++=*src++);
0968デフォルトの名無しさん2009/12/06(日) 23:16:33
>>957
関数型言語ではないのでevalとは違うしtclとも違う。
表現形式や関数のインタフェース違う。

>>965
 ドキュメントでは遅延評価とは記載されてない。
たしか変数の値を変更したときは即時反映される。

>>960
 ANSI Cだとvoid main()ではないよ。
0969デフォルトの名無しさん2010/01/03(日) 04:52:48
(´・ω・`)
0970デフォルトの名無しさん2010/01/04(月) 21:19:40
/usr/include/stddef.h: #define offsetof(type, field) ((size_t)(&((type *)0)->field))

かな。最初はどうやりゃ実装できるのか知らなくて typeof みたいな GNU 拡張だと思ってたから
>>966 のは最近知って感動した。以下な感じのソースで

for (int d=0; cond; d=1-d) {
if (!d) {

} else {

}
}
0971デフォルトの名無しさん2010/01/04(月) 22:11:28
最適化されれば同じかもしれないけど
d=1-dよりもd^=1の方が速い気がする
0972デフォルトの名無しさん2010/01/05(火) 00:26:50
d = ~d の方が良いんじゃ?
0973デフォルトの名無しさん2010/01/05(火) 00:39:22
ステータスレジスタへの影響が違う
0974デフォルトの名無しさん2010/01/05(火) 19:58:49
for (int d=0; cond; d=1-d) {
if (!d) {

} else {

}
}

って何がしたいの?
0975デフォルトの名無しさん2010/01/05(火) 20:24:38
>>974
condがfalseになるまでthen節とelse節を交互に実行したいけど、
ループ中で for (...) { ...; ...; } とは書きたくない何らかの理由があったんじゃないかね
0976デフォルトの名無しさん2010/01/05(火) 21:00:55
ループで書くと while(cond){ ...; if(!cond)break; ...;} こうなっちゃうんじゃね
0977デフォルトの名無しさん2010/01/06(水) 00:28:41
>>973 x86を仮定してないか?
0978デフォルトの名無しさん2010/01/06(水) 01:06:28
いや、x86だけじゃない
まぁMIPSは想定してないがね
0979デフォルトの名無しさん2010/01/06(水) 01:14:06
>>976
>>974のelse節次第ではelse節が連続で実行されることもありえるからそれはまずい
0980デフォルトの名無しさん2010/01/06(水) 22:59:15
980
0981デフォルトの名無しさん2010/01/12(火) 12:02:23
980
0982デフォルトの名無しさん2010/01/12(火) 22:35:22
次スレ建てられん。頼む
0983デフォルトの名無しさん2010/01/12(火) 23:24:22
つ http://pc12.2ch.net/test/read.cgi/tech/1263306199/
0984デフォルトの名無しさん2010/01/13(水) 02:37:29
.  /     /  /  l:     /  l           ∨i    、   |
  l│  /  イ  ,イ.    l  ト、ヽ     / | :l :|   |  l
  | |   l_メ、」_,;./l     L  l V   ∧ /  :|/   ハ.  ト、
  | ト.  |.____ ヽ    l´ヽ{ _⊥イ イ /   /    / l/⌒ヽ
  | | ヽ | 、i┘::::i  \  | r┬┬‐┬ァ V  ,∧.   ,'  ´
  レ   ヽ!  ゝ- '   \l  i,.┘:::::iノ / ,/〉│ :| { 
.      7/l/l/   、     `'ー‐ ' ∠≠r'ノ:jノ :| |
     λ            /l/l/l ∧‐'.:|:::|  ハ ',    なにこのスレ・・・
      `、      ヽ        ,/| ::| :|:::| ./ ヽ_> 
        ` = 、         ,.イ∧'|:l.:/l:::|´         見たことない単語だらけで意味が分からない
              `>-r  =ニi´、.,_`::: |:| { |:::l
          _,.イ´ヽ.7   /  /:\;八:V:ノ
       /7:::::!  ○O'´  /::::::::/ヽ
レス数が950を超えています。1000を超えると書き込みができなくなります。