トップページ⇒tech
102コメント28KB

【これ】素人が戸惑う変則的なコード【いいの?】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
そんなコードを書いてほしい.

例1
printf("test1");
printf("test2");
↓
printf("test1"),
printf("test2");

======================
例2(ってほどでもないけど)
int i;
for(i=0;i<10;i++)
↓
int i=0;
for(;i<10;i++)
0002デフォルトの名無しさんNGNG
       ∧_∧
      ( ´Д`) 
     /    \
  __| | 高橋 | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0003デフォルトの名無しさんNGNG
さすが駄スレですな
0004デフォルトの名無しさんNGNG
>>1
Cのライブラリのソースには結構あるよ
00054NGNG
>>4
失礼、CのANSI標準ライブラリな
0006デフォルトの名無しさんNGNG
       ∧_∧
      ( ´Д`) 
     /    \
  __| | 小池 | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0007あげたるNGNG
素人はウセ□!!
マジ氏ね!

       ∧_∧
      ( -Д-) 
     /    \
  __| | いち | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0008デフォルトの名無しさんNGNG
int i=0;
for(;i<10;i++)

ってまずいの?
変数生成と同時に初期化した方が効率よさそうだが。
0009デフォルトの名無しさんNGNG
>>8
int i = 0;とforがくっついてるならイイが,C++でない限りたいてい離れてる
↓
超読みにくい
0010あげたるNGNG
0001: int i=0;
0002: for(;i<10;i++);
0003: for(;i<10;i++);/*この変数慈悲で、もっかいなんかにつかったろ*/

なにか?
0011デフォルトの名無しさんNGNG
K&Rからしてループ変数をループの外でも使いまわしてるからな
行儀は良くないよね
0012デフォルトの名無しさんNGNG
クラスの名前を文字列でとっておいて型判定。継承の階層が多いとき
引数はほとんどVOIDポインタ。
コールバック関数を無駄に多く使ってみる。
とか、あたりが死ねると思われ。
0013デフォルトの名無しさんNGNG
>>11
whileは行儀が良くないの?
0014デフォルトの名無しさんNGNG
ありがちなネタだが。
while(*p++ = *q++);
0015デフォルトの名無しさんNGNG
>>11
ループの下で使うのは普通だと思うが
int i=0
for(;ちょっと複雑な条件;i++){ /* */ }
printf("%dで抜けた\n",i);
0016デフォルトの名無しさんNGNG
こっちの方が行儀が悪いと思う
j=0;
for(i=0;j<10;j++){/*適当にiを使う*/}
001716NGNG
こっちの方がさらに悪いか
j=0;
for(i=0;j<10;j++){/*iは使わない*/}
i++;
0018デフォルトの名無しさんNGNG
漏れはループ内でだけ使うなら
for(int i=0; i<N; ++i)
とする。
VC++ の場合
#define for if(0);else for
としとく。

ループの下でも使う場合でも、特別な事情がない場合
int i=0;
for(; i<len; ++i)
for(; i<N; ++i)
って感じで、for 文と変数の宣言は必ずくっつける。

たまに C++ を使えない仕事とか来るとぶちきれる。
0019デフォルトの名無しさんNGNG
>>18
煮干でも食え。
0020デフォルトの名無しさんNGNG
for(i=LoopMax;i;) {
  i--;
  DoSomething();
}

とかやると速いらしく。
0021デフォルトの名無しさんNGNG
>>20
どんなCPUだってたいていはゼロ比較のが速いっつーアレだ
0022デフォルトの名無しさんNGNG
しかし、まともな最適化能力を持つコンパイラだとわざわざ小細工する必要がないのも事実だ。
0023デフォルトの名無しさんNGNG
回数固定なら
DoSomething();
DoSomething();
DoSomething();
DoSomething();
...
が一番速いんじゃねぇ? コンパイラがこんな展開してくれるんかな
0024デフォルトの名無しさんNGNG
>>20
どうせやるなら
if(i=LoopMax){
  do{
  DoSomthing();
  } while(--i);
}

>>23
gccなら-funroll-all-loops
0025デフォルトの名無しさんNGNG
糞C氏ね
と。
0026デフォルトの名無しさんNGNG
どうせならDuff's Deviceつかえ
0027デフォルトの名無しさんNGNG
糞javaは市ねと。
0028デフォルトの名無しさんNGNG
>>15
for(i=0;isspace(s[i]);i++);
i++;
****
for(n=0;isdigit(s[i]);i++);
こういうのってやっぱ行儀悪いよ>K&R

>>13
whileなら悪くない
0029デフォルトの名無しさんNGNG
今時糞K&Rなんか読むやついないので無問題
0030デフォルトの名無しさんNGNG
あぼーん
0031デフォルトの名無しさんNGNG
__asm{
 mov eax,LoopMax
 or eax,eax
jz label2
label:
 push eax
 }
 DoSomething();
 __asm{
 pop eax
 dec eax
 jnz label
 }
label2:
0032デフォルトの名無しさんNGNG
                   ,;:='''""""''''=;,
                  /  /""\  .i||
                /  /::::::::::::::"l,= |||;; 
               /   /::::::::;-='""" /iiil;:;:;.......,,
             ,/:::::::::  /::::/    l,;:;;:;ヽ   l 
            ,/::::::::::::::.. ,i::::/     ,l,;;;;;;;|   l,
            ,/:::::::::::::::::::;::/"     ,|l;;;;;;i,---;,,l,
           ,l::::::::::::::::::::::;./      |l;;;;;;i,   l,
           |:::::::::::::::::::::/;;;;;;;;;;;;;,_   |l,;;;;;ヽ ☆ 'l,
           |::::::::::::::::::;/"~  ~"";: |;;;;;;;|    \
           l;::::::::::::::::/  ,,,,,,_  ::. |;;;;;;;|      \ 
           |:::::::::::::/-=二〇ニ>::. ,|;;;;;;;|       )
           .|::::::::;/::    :::::::::. :: .,|;;;;;;;;;|    (\\ 
            |/"/|::       / |;;;;;;;;|     `)\\ 
            |l,"l,:|:      ;::" ,|;;;;;;;;| __;:;:'''  \\
           ,l'ヾ,,,|:    /(、_ ||;:;:;:;;:l /       \\
           ノ:::::::::|       ⌒=,_i;;;;;:;:;| |         l l
          ''""""l,   i, _,,,,,,,,=-;;|;:;:;:;;;;;|         l l
               ヽ;:  ヾ-=,+-l ;:;;;;;;;J         | |
                l;:.  ヽヾ=,|,,,|,,;;;;;;;;;,,|l        | |
                ヽ;:..  \  |illlllllliii ̄ ̄ ̄)   | |
                 \   ~"'''=|i;:;:;:;:;:l   (    | |
                  \   ""|iiii;:;:;:;l   l    | |
                   ヽ、   |;:;:;;;;;;;;;l   l    | | 
0033IP記録実験NGNG
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を提出することがある。
0034デフォルトの名無しさんNGNG
>>446
ソナチネとか結構好きです。
>>449
もうすでに。
0035デフォルトの名無しさんNGNG
>565
もう買った。
0036デフォルトの名無しさんNGNG
http://live2.2ch.net/test/r.i/news/1042008602/34-
0037デフォルトの名無しさんNGNG
正直ひろゆきには失望した
0038デフォルトの名無しさんNGNG
>>162
どこの管理人?
0039デフォルトの名無しさん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
────────────────────────────
0040デフォルトの名無しさんNGNG
>>791
NGワードにでも指定して、ブラウザ側で消しとけばいいじゃん。
0041デフォルトの名無しさんNGNG
>>50
>>48見てねん。

言葉が少なかったです。
俺の言ってるのは、
内容証明で、名誉毀損の箇所が指定されていて、
それをひろゆきが知った時点で、削除義務があるってことでしょ。
内容証明に書かれてるのが名誉毀損かそうでないかは別に問題ではなくて、
内容証明に名誉毀損箇所が書かれていたら、って言ってるの、わかります?
0042デフォルトの名無しさんNGNG
少しレベル落としてやろうか?

>内容証明で名誉毀損の部分を削除しろって言うわけでしょ。
>その時点で、ひろゆきは名誉毀損を知るから、

一行目と二行目は論理性が無いといってるんだよ。これで分かる?
0043デフォルトの名無しさんNGNG
SETTING.TXTのBBS_SLIPの設定は無効化されるんだっけ?
(でないと、削除系3板とかは二重にIP取ることになって無駄だし)
概出?
0044デフォルトの名無しさんNGNG
Yahoo!トピックス

2ちゃんねるがアクセスログ記録を始めましたが、あなたの考えは?
2003年1月9日より 計180票

匿名性に絡む問題なので反対 32% 58 票
サイトのためになるから賛成 50% 90 票
利用しないから関係ない 8% 15 票
2ちゃんねるってなに? 3% 6 票
アクセスログってなに? 6%

0045デフォルトの名無しさんNGNG
2ちゃんねる

     ああ2ちゃんねる

             2ちゃんねる・・              う〜む(悩)
0046デフォルトの名無しさんNGNG
今俺がおならした事も解ってしまうのかな?
0047デフォルトの名無しさんNGNG
>>312
はたらいらさんに全部。
0048デフォルトの名無しさんNGNG
マン・・・・・・・





ホール。
駄目だ怖くて出来ません逝ってきます。
0049デフォルトの名無しさんNGNG
ねえってば
0050デフォルトの名無しさんNGNG
IPが出てますよ
0051デフォルトの名無しさんNGNG
(;´∀`)アアンやっぱトリップだったかー

で、トリップとIDの生成式って同系なの?
0052デフォルトの名無しさん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
────────────────────────────
0053デフォルトの名無しさんNGNG
set NULLnul>l &>gt>gthosting-x.comnull>>gtgtgt get oldres-num get few make IP >renew.
0054デフォルトの名無しさんNGNG
眠くなってきた・・・
0055デフォルトの名無しさんNGNG
わかんねーよ(゚Д゚)フォルァ!!
どんな感じに算出しているのか
日本語で教えてくだちい
0056デフォルトの名無しさんNGNG
998 名前:998 :03/01/08 22:26 ID:ICkM9x+k
    _、_  グッジョブ999!!         
   ( ,_ノ` )     n    
  ̄     \    ( E)    
 フ     /ヽ ヽ_//


999 名前:名無しさん@3周年 :03/01/08 22:26 ID:XXsHuQTe
ウェー、ハッハッハ
   ↓


1000 名前:名無しさん@3周年 :03/01/08 22:26 ID:1VoQC5R/
1001!
0057デフォルトの名無しさんNGNG
しかし、まともな最適化能力を持つコンパイラだとわざわざ小細工する必要がないのも事実だ。
0058デフォルトの名無しさんNGNG
ラウンジ・ハン板に逝けなくてちょっとさみしい今日の漏れ。
0059デフォルトの名無しさんNGNG
北朝鮮も平和だよ
0060デフォルトの名無しさんNGNG
8 名前: ひろゆき@管直人 投稿日: 2000/04/07(金) 07:20
0061デフォルトの名無しさんNGNG
けっこう、良い議論スレになってるなぁ…
0062デフォルトの名無しさんNGNG
LL涼しいJ
0063デフォルトの名無しさんNGNG
どうでもいいけどって言ったのはお前さんなんだが…

大丈夫か?
0064デフォルトの名無しさんNGNG
http://www.geocities.co.jp/Technopolis-Mars/6820/hoken/
↑ここも、偉そうなことを書いてるが、
「※この内容によっていかなる損害が発生しても掲載者は一切の責任を負いません。」
となっているところが、なかなか痛い。
0065デフォルトの名無しさんNGNG
死ぬほどハゲワロタ
0066デフォルトの名無しさんNGNG
存じております。削除すれば問題は生じないでしょう。
反論があって削除しなかった場合は、
・反論に理由がある → 書き込み者と「被害者」が裁判
・反論に理由がない → 書き込み者&ひろゆきと「被害者」が裁判
でしょうな。

うんうん…。
0067デフォルトの名無しさんNGNG
testtest
0068山崎渉NGNG
(^^)
0069デフォルトの名無しさんNGNG
よんんど
0070山崎渉NGNG
(^^)
0071山崎渉NGNG
(^^)
0072デフォルトの名無しさんNGNG
↓氏ね
0073デフォルトの名無しさんNGNG
Cに類似する次の言語があるなら、ぜひforeachを入れてくれ
0074デフォルトの名無しさんNGNG
↑死ね
0075デフォルトの名無しさんNGNG
$a = $arg1 || $arg2;
0076デフォルトの名無しさんNGNG
>>75
逆にそれができない言語(Cとか)ではまりそうになる
0077デフォルトの名無しさんNGNG
H8の8bit/16bitいじってるけど、while() { } より、
do { } while()のほうが速い。0回の可能性が無いときはこっちを使うよう
気をつけてる。あと制御系なんかでbit列をクロックアウトするときなどは
>>23みたいにループ制御書かないのはよく使うよ。
0078デフォルトの名無しさんNGNG
無限ループだと for(;;) のが条件評価する必要がないから速いって
ほんと?

bcc とかだと while(true) と特に何もかわんないけど。
0079デフォルトの名無しさんNGNG
>>78
こんぱいらにまかせておけよ
0080デフォルトの名無しさんNGNG
>>77
> bit列をクロックアウトするとき

クロックアウト ?
0081デフォルトの名無しさんNGNG
>>80
外からクロックを貰って、1bitづつデータを吐き出すことだと思う。
組み込みではよくあることだ。

>>77
ROMの空き具合によるなー。両方作ってみて小さい方を採用。
0082デフォルトの名無しさんNGNG
ROMはたいがいぎりぎり必要な量の2倍ぐらい付いてることが多いな。
ま、俺がシェイプアップ狂だってこともあるけど。
クロックは貰うよりも自分で作ることのほうが多い。ポートxの、
bit1<--0または1 bit0=1,bit0=0ってやるとき、bit1をdata,bit0をclock
と言って、これを16回くり返して16bitの情報をICに書き込んだりする。
0083デフォルトの名無しさんNGNG
ROMはたいがい2倍ぐらい付いてるなあ、俺の場合。
ま、俺がシェイプアップ狂だってこともあるかも。
クロックは貰うより作るほうが多いな。ポートxのbit1をdata,bit0をclock
として、bit1<--0か1 bit0=1,bit0=0とやると1ビットクロックアウト、
これを16回で16bitの数値をICに書き込んだりする。ハード制御の最下層。
0084デフォルトの名無しさんNGNG
あちゃ、二重ごめんなさい。
0085デフォルトの名無しさんNGNG
>>84
レスも二倍・・・
0086デフォルトの名無しさんNGNG
>>83
> クロックは貰うより作るほうが多いな。

君の実力がだいたいわかったよ。
0087デフォルトの名無しさんNGNG
>>83
同期シリアル出力実装してるとみたが、bit0をデータ、bit1をクロックに
割り付けたほうがちょっとだけお得。
ハードが先に決まってるのならつべこべ言えんが。
0088デフォルトの名無しさんNGNG
どのbitをデータ/クロックにするかはほとんど配線の都合で決まるみたい。
今の石(H8等)では、どこのbitに決まっても均等にハンドリングできる
アーキテクチャになっているよ。cがヘボで性能出せないこともあるけど。
0089デフォルトの名無しさんNGNG
>>88
その時の気分も大きな要因です。
まあbit操作命令が用意されていれば、どこに振られてもそんなに困らないけど。
0090デフォルトの名無しさんNGNG
確かに何の必然だか判らないアサインもありますね。
nビットのクロックアウトってMSBファーストかLSBファーストのことが多い
から、シフトかローテートでCYに出してそれをポートのbitに書く、
というのをよくやります。そういう機械語があるのにcがヘボで、mask操作
のお化けみたいなコードが出てきて、ちゃぶ台ひっくり返したくなる。
009187NGNG
ん?

for(maskbit=15;maskbit>=0;maskbit--)
{
serialdata = ((wr_data>>maskbit )& 1) << BIT_DATA;
  serialdata |=savedbits;
OUTPORT( serialdata );
OUTPORT( serialdata |BIT_CLOCK);
}
OUTPORT( savedbits );

こんなこと書くんじゃないかと思ったわけだが・・・
BIT_DATAが0だとアセンブラで1行お得ということでつ。
009287NGNG
インデントに失敗しますた。
あげ
009388,90NGNG
段付けは無くても読めますよ。
91みたいなコードを8bitCPUのcで書いたら大〜〜い変。maskのお化け
みたいなコードが出てきて、目が腐る。#pragma sfr などと組み合わせて
如何に簡潔なbit操作コードを出させるかに腐心します。その課程で
register変数のbitをアクセスできないとか、ビッグエンディアンチップの
bit15がLSBバイトのbit7だったりするバグを踏んづけることになる。
こうして8bit系のcコンパイラに対する不信感が育つわけです。
0094山崎渉NGNG
(^^)
0095山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0096山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0097デフォルトの名無しさんNGNG
Cに類似する次の言語があるなら、ぜひforeachを入れてくれ
0098山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0099デフォルトの名無しさんNGNG
>>97
STL
0100山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0101山崎 渉NGNG
(^^)
0102山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
■ このスレッドは過去ログ倉庫に格納されています