今までに見たソースコードで一番感動したのは deux
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/01/12(火) 23:23:19while(*src++ = *dst++) ;
・ポインタの型によってインクリメントの適量を判断して加算してくれる点
・行末の ;
・終了判定
無駄も過剰もなくって感じで好きです
前スレ
http://pc12.2ch.net/test/read.cgi/tech/1037458703/
0002デフォルトの名無しさん
2010/01/12(火) 23:26:200003デフォルトの名無しさん
2010/01/12(火) 23:27:43srcからdstに代入されるようになっているから
0004デフォルトの名無しさん
2010/01/12(火) 23:29:39要するに stos[b/w/d] だろ
0005デフォルトの名無しさん
2010/01/12(火) 23:44:16ほんとC++は何でもありだな
0006デフォルトの名無しさん
2010/01/13(水) 02:01:360007デフォルトの名無しさん
2010/01/13(水) 06:56:38左から右に代入に変更してあるってことか?アホじゃないのか?
それだったら -> を左から右への代入ってことにすればいいんじゃないのか?
0008デフォルトの名無しさん
2010/01/13(水) 10:15:370009デフォルトの名無しさん
2010/01/13(水) 12:04:53今は別にって感じだな
枯れちまって情熱がもうないのかもしれん
0010デフォルトの名無しさん
2010/01/13(水) 12:09:23{
return main();
}
0011デフォルトの名無しさん
2010/01/13(水) 12:20:510012デフォルトの名無しさん
2010/01/13(水) 12:41:49Cは実質アセンブラなんだから
movem (a0)+, (a1)+
見たいな事は出来ないと困る
0013デフォルトの名無しさん
2010/01/13(水) 12:46:400014デフォルトの名無しさん
2010/01/13(水) 12:47:380015デフォルトの名無しさん
2010/01/13(水) 13:04:55感動したものにこんなのがある
SQLで覆面算を解く
ttp://miko.org/~naruto/Artifact/MASKSQL.html
0016デフォルトの名無しさん
2010/01/13(水) 14:18:44これだけだと危険なコードだよねぇ
0017デフォルトの名無しさん
2010/01/13(水) 17:47:19x = x + y;
y = x - y;
x = x - y;
0018デフォルトの名無しさん
2010/01/13(水) 17:55:28それでうまくいく範囲の値を使っている限りはね
0019デフォルトの名無しさん
2010/01/13(水) 18:28:37アセンブラやってた人間から見たら当たり前だよな
Cで同じことが出来ると言われてもあっそうとしか
0020デフォルトの名無しさん
2010/01/13(水) 19:23:16これってループを抜ける保証があるの?
一見ないように見えるんだけど。
0021デフォルトの名無しさん
2010/01/13(水) 19:24:31http://codepad.org/72Hm2T8T
うまくいかないじゃん。
0022デフォルトの名無しさん
2010/01/13(水) 19:26:56終了条件を満たした直後に2つのポインタがインクリメントされてしまうのが
無駄なような気がしていたあの頃が懐かしい
0023デフォルトの名無しさん
2010/01/14(木) 14:07:54おいおい、doubleなのに%dとか素で言ってるのかw
0024デフォルトの名無しさん
2010/01/14(木) 14:25:56ごめん。素で言っちゃったw
0025デフォルトの名無しさん
2010/01/14(木) 14:29:11http://codepad.org/pTLkz2cx
0026デフォルトの名無しさん
2010/01/14(木) 14:32:10http://codepad.org/DMn3DjZT
0027デフォルトの名無しさん
2010/01/14(木) 14:45:26まあ、桁あふれすれば当然そうなるわな
>>17の方法だと、有効桁数が1bit分減るってことだろ
0028デフォルトの名無しさん
2010/01/14(木) 22:12:39>>17 みたいな劣化版を今更発見されても・・・ねえ
0029デフォルトの名無しさん
2010/01/14(木) 23:31:37SQLとか
0030デフォルトの名無しさん
2010/01/15(金) 00:50:13こんな奴。
int median(int x,int y,int z){
return max(x,y)^max(y,z)^max(z,x);
}
0031デフォルトの名無しさん
2010/01/15(金) 02:03:40DAA
ADC 40H
DAA
これ考えたやつの頭はどうかしてる。
0032デフォルトの名無しさん
2010/01/15(金) 02:20:01b = min(x,y)
z = a*a - b + 2 * y
という式において、x, y と zの関係を表にすると、以下のように
zが正方形を規則正しく埋めるような形に並ぶ。
00 01 04 09
03 02 05 10
08 07 06 11
15 14 13 12
用途:
x,yの上限が動的に増える2次元配列を、
素のvetorに無理矢理突っ込むのに使ったり…
0033デフォルトの名無しさん
2010/01/15(金) 06:16:22誰が知らないと言ってるの?
0034デフォルトの名無しさん
2010/01/15(金) 10:50:41ROM が数十キロバイトもあるのに RAM が数百バイトなんてマイコンも今時あるんだな。
そら有用だわ。
0035デフォルトの名無しさん
2010/01/15(金) 12:23:010036デフォルトの名無しさん
2010/01/15(金) 13:43:400037デフォルトの名無しさん
2010/01/17(日) 13:10:35Public Sub Test()
Dim c As New Class1
Dim i As Integer
For i = 0 To 10
Set c = Nothing
Set ac(i) = c
Next i
End Sub
0038デフォルトの名無しさん
2010/01/26(火) 17:28:0800 01 03 06 10
02 04 07 11
05 08 12
09 13
14
こう並べると条件分岐のない式になる。データの種類によってはこれも便利。
0039デフォルトの名無しさん
2010/01/26(火) 17:29:25z=(x+y)^2/2+(x+y)/2+y
0040デフォルトの名無しさん
2010/03/24(水) 22:18:350041デフォルトの名無しさん
2010/03/24(水) 22:22:220042デフォルトの名無しさん
2010/03/24(水) 22:36:10ゼロターミネイティッドな文字列のコピー
または、偽と可換な番兵付きのコンテナのコピー
0043デフォルトの名無しさん
2010/03/24(水) 22:38:23文字列の終端には\0があるからそれでループが終わる
K&Rとかに出てきそうな感じ
しかし、>>1って未定義じゃないんだろうか
初級C言語Q&Aの
二つの副作用完了点の間に、オブジェクトの値を2回以上変更している場合、
又は変更した後で新しい値を得ること以外の目的でそのオブジェクトをアク セスしている場合
詳しくないのでわからんけど
0044デフォルトの名無しさん
2010/03/24(水) 22:56:11未定義になるのは、「同一の」オブジェクトの値を二回以上変更した場合な
0045デフォルトの名無しさん
2010/03/25(木) 18:39:57つまり、このコード自体に意味はないが
while((*src)++ = *dst++)
だったら未定義ということだな
0046デフォルトの名無しさん
2010/03/25(木) 19:03:38把握してない。w
0047デフォルトの名無しさん
2010/03/25(木) 22:58:420048デフォルトの名無しさん
2010/03/26(金) 05:40:51未定義じゃ困るだろ。
右辺値に代入するコードがエラーにならなかったら、みんなC/C++捨てるよ。
0049デフォルトの名無しさん
2010/03/26(金) 20:10:41把握してない。w
0050デフォルトの名無しさん
2010/11/11(木) 20:04:190051デフォルトの名無しさん
2010/11/11(木) 21:04:200052デフォルトの名無しさん
2010/11/12(金) 16:16:41ム板ってこんなに程度が低くなってたのか。
0053デフォルトの名無しさん
2010/11/12(金) 18:37:43warosu
0054デフォルトの名無しさん
2011/11/12(土) 10:42:10.24デバックしにくいダメコードだな
0055デフォルトの名無しさん
2011/11/12(土) 12:51:15.210056デフォルトの名無しさん
2011/11/14(月) 21:53:40.550057デフォルトの名無しさん
2011/11/15(火) 07:26:30.940058デフォルトの名無しさん
2011/11/15(火) 21:06:15.22/*
ここに処理
//*/
最初の/*を//*にすればどーたらこーたら
0059デフォルトの名無しさん
2011/11/16(水) 10:56:24.84#endif
なら感動した
0060デフォルトの名無しさん
2011/11/18(金) 15:19:39.54これ確実なの?未定義っぽいけど…。
0061デフォルトの名無しさん
2011/11/18(金) 20:19:39.09確実じゃないの?
場合によるけど。
/*例1
/*コメントのネストはNG*/
//*/
/*例2
//このコメントはネストしてもOK
//*/
/*例3
//*//この状態はNG
ようはコンパイラが/*を見つけたら*/がくるまでコメントと見なす機能と//のコメントを上手く使ってるという事で。
0062デフォルトの名無しさん
2011/11/19(土) 16:29:55.61■ このスレッドは過去ログ倉庫に格納されています