【BTC有償】C/C++/Java/C#/JSの問題を片付けます(5)at TECH
【BTC有償】C/C++/Java/C#/JSの問題を片付けます(5) - 暇つぶし2ch78:蟻人間
21/07/16 00:04:02.81 FNu/4nbn.net
>>77
と思ったが、標準化も合理化もされてない汚いコードだった。同情する。

79:ハノン
21/07/16 04:09:53.02 6W3ohAQ3.net
>>78
C ならばこんなもの、では?
標準化・合理化とはどういう意味か、キーワードを教えていただけませんか?

80:蟻人間
21/07/16 04:28:23.77 A88ddcwp.net
>>79
標準関数labsやabsを差し置いてiabsを定義したり、標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
また、入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。

81:蟻人間
21/07/16 04:38:31.59 A88ddcwp.net
gotoの連続は時代遅れだし、IDEデバッグの一発で変数の値を調査できるのに今どきprintfデバッグはないでしよう。

82:ハノン
21/07/16 04:40:45.39 6W3ohAQ3.net
>>80
ありがとうございます
>標準関数labsやabsを差し置いてiabsを定義したり、
>標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
確かに耳がいたい、特に 2011 年の頃は stdint は意識していませんでした
>入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。
入出力が 1 バイトずつなのは趣向です、つまり「処理系の」エンディアン依存を回避するための書き方を模索していたから
1関数内で必要以上に複雑に機能を混ぜたり、というのは、ある意味やっつけ仕事だったような気がしますから、この点はもう少し整理できるのやもしれませんね

83:ハノン
21/07/16 04:42:07.60 6W3ohAQ3.net
>>81
goto は使いどころだと思いますし、私の goto の使い方はよくあるやりかたかと
printf デバッグ‥‥まあ、#if 0 の中の話は許してください‥‥

84:蟻人間
21/07/16 04:44:46.65 A88ddcwp.net
エンディアンの問題はプリプロセッサでコンパイラのエンディアンの種類を判定して、必要ならば後で各整数値のバイト順を入れ替えることで対処可能。

85:ハノン
21/07/16 05:33:22.29 6W3ohAQ3.net
>>51 を発掘しました
URLリンク(ideone.com)

86:ハノン
21/07/16 19:43:33.34 6W3ohAQ3.net
>>84
そのプリプロでエンディアン判定って具体的にどうするのですか?もしかしてコンパイラ依存のプリプロなのでは?

87:デフォルトの名無しさん
21/07/16 21:51:07.80 5u17T0rt.net
>>86
URLリンク(github.com)

88:ハノン
21/07/17 14:59:13.37 Blzyac97.net
>>87
1. endian.h は標準ですか?
2. __ORDER_LITTLE_ENDIAN__ は誰が定義するのですか?
3. 私は、エンディアンに依存する部分をちまちま #if でわけわけするくらいなら、最初からどっちでも動くコードを書く価値観を(ときどきはそうでないにせよ、たまには)持ちますが、片山さんはどうお考えですか?

89:デフォルトの名無しさん
21/07/17 15:42:32.29 9SJyeTj1.net
>>88
ここ有償のスレでしょうが
あんたが質問したらそれも有償で答えをもらうつもりってことですね

90:ハノン
21/07/17 19:36:43.85 Blzyac97.net
>>89
そのつもりです
>>1-4 のテンプレートに従って回答者が BTC を提示するのを待ちますよ

91:ハノン
21/07/19 00:43:41.49 GBLedbw5.net
スレリンク(tech板:691番)
スレリンク(tech板:822番)
URLリンク(ideone.com)

92:蟻人間
21/07/19 23:12:30.63 6UpSDY/2.net
順番に見ていくよ。
#if defined(__linux__) || defined(__ANDROID__)
この行はライナックスかアンドロイドであるか確認している。そうなら<endian.h>をインクルードできる。
#elif defined(__Apple__)
この行はアポウ製品かどうか確認している。アポウなら
<machine/endian.h>
をインクルードできる。
これでエンディアン関連のマクロが定義されるであろう。

93:蟻人間
21/07/19 23:15:54.22 6UpSDY/2.net
__ORDER_LITTLE_ENDIAN__
これはコンパイラまたはエンディアン関連のヘッダーが定義する。
いちいちちまちま定義するのは、エンディアン関連の処理の最速を狙うため。それがそんなに重要でなければ自己流で書けばいい。

94:蟻人間
21/07/19 23:19:08.75 6UpSDY/2.net
BSDなんて知らん、白ラン、博覧会。

95:蟻人間
21/07/19 23:36:29.61 6UpSDY/2.net
最後にこの行:
#elif defined(_WIN32) || defined(__i386__) || defined(__x86_64__)
32ビットまたは64ビットのWindowsコンパイラなら_WIN32が定義済み。また、i386コンパイラならおそらく__i386__が、定義済みである。
これらはすべてリトルエンディアンである。

96:デフォルトの名無しさん
21/07/20 19:43:32.67 uoPaRYbd.net
どのシンボルを誰が定義するのかがどこで標準化されてるのかって話だろ

97:蟻人間
21/07/20 22:56:03.46 MBW0UwB7.net
少し改良しました。
URLリンク(github.com)
エンディアン関連はまったく標準化されてません。ほとんどOSごとに違うし、明文化があまりされてない。OS作る人が別々にテキトーに定義しちゃったらしい。

98:ハノン
21/07/22 11:49:17.39 BtepJ1kx.net
>>97
なるほど、価値観を率直に提示いただき感謝します

99:デフォルトの名無しさん
21/07/23 13:49:09.40 RWGVQckI.net
makeファイル内でエンディアンチェック等の小さなコード走らせて define を生成することもできるよね

100:ハノン
21/07/23 22:48:08.00 zol1XK0Y.net
>>99
まけファイルって、int main(){ return r; } の r を識別するのですか?成功(ゼロ値)か失敗(非ゼロ)かしか見ていないかと思っていました、まあそれだけでも使えるかもしれませんが、というか、返り値で挙動を変えることのできる make ってあんまり聞かないな‥‥

101:デフォルトの名無しさん
21/07/24 09:23:35.39 e9ZV+dd5.net
>>100
例えば endian.h を生成するんだよ、そのコードで。

102:ハノン
21/07/24 12:58:40.50 oHFR5e3Z.net
>>101
なるほど‥

103:ハノン
21/10/17 22:53:24.71 iZHfLY3S.net
スレリンク(tech板:276番)
スレリンク(tech板:305番)

104:デフォルトの名無しさん
21/11/20 07:14:05.70 MLvodC4I.net
Windows環境なんですがddao35.dllって何者?
Windows SDKにインポートライブラリだけはあるので
CdbDatabaseとかCdbRecordsetとか書いてビルドは通るんだけど
dllが無いから実行時にエラー。
Windows 10環境複数、Windows 7、Windows XPでdllを探し回ったが同じ
(どの環境もインポートライブラリだけは"C:\Program Files"内にある
ひょっとしてDAOよりさらに古いODBCドライバか何か??

105:ハノン
21/11/21 23:48:06.30 ODZrEgDk.net
>>104
わかりません…

106:ハノン
21/11/28 14:55:02.63 DhOI6JvL.net
スレリンク(tech板:443番)
スレリンク(tech板:410番),411,432,443,445
単方向リストの削除
URLリンク(ideone.com)

107:ハノン
21/11/28 17:36:57.58 DhOI6JvL.net
スレリンク(tech板:443番)
スレリンク(tech板:410番),411,432,443,445
双方向リストの削除
URLリンク(ideone.com)

108:デフォルトの名無しさん
21/12/03 02:06:55.40 rUbWPynB.net
425 名前: ◆QZaw55cn4c [sage] 投稿日:2012/09/12(水) 04:03:24.28
スレリンク(tech板:633番)
>>365 を元にして出題の仕様にあわせました。
URLリンク(ideone.com)
本当にΟ(nlogn)かはよくわかりませんが、バブルソートよりはましなようです。URLリンク(ideone.com)
なお >>365 はコムソートの実装自体にあやまりがあることが判明しました。次に訂正します。
URLリンク(codepad.org)

109:デフォルトの名無しさん
21/12/04 00:51:44.14 d5QmhWSv.net
スレリンク(tech板:735番),738
>>425 = スレリンク(tech板:425番)

110:デフォルトの名無しさん
21/12/04 23:39:44.94 NV8qu4iZ.net
クイックソートの最悪計算量はO(N^2)、
と世間一般には認識されているが
クイックセレクトと組み合わせたら最悪計算量もO(n*log(n))になる、
というオーダー記法マジック、

111:デフォルトの名無しさん
21/12/05 00:04:26.44 HAXCanWR.net
>>110
イントロソート、というのもあるようですね

112:デフォルトの名無しさん
21/12/05 09:54:09.33 thYcMvTR.net
そこまでするならクイックソートなんか使わん
実装の簡単さしか売りがないんだから

113:デフォルトの名無しさん
21/12/05 09:59:15.79 HAXCanWR.net
>>112
実用的なソートでは、ソート範囲がある程度まで狭くなったら選択ソート・挿入ソートに切り替えますよ
そういうところは、あなたお得意の実時間評価的に優位でしょう?

114:デフォルトの名無しさん
21/12/06 11:19:12.58 EOOuRFRK.net
「あなたお得意の」????
俺が誰だか知ってるの?

115:デフォルトの名無しさん
21/12/25 23:05:48.80 1RbqwiRd.net
スレリンク(piano板:518番)
スレリンク(i4004板:316番),324
URLリンク(ideone.com)

116:デフォルトの名無しさん
22/07/15 21:05:29.61 byBstCP0.net
malloc()/free() のラッパ
スレリンク(tech板:365番)

117:デフォルトの名無しさん
22/08/15 16:59:43.51 ioAOBwsA.net
スレリンク(tech板:680番)
URLリンク(ideone.com)
URLリンク(ja.wikibooks.org)'s-associativity

118:デフォルトの名無しさん
22/09/18 18:37:46.20 4Q6DAwnL.net
hosyu

119:デフォルトの名無しさん
22/10/16 23:13:17.53 0qQwmMaC.net
スレリンク(tech板:960番)
URLリンク(ideone.com)
なんとなく思い出したので記録しておきます

120:デフォルトの名無しさん
22/10/22 20:45:51.58 gp8ihYau.net
C++17 std::variant
スレリンク(tech板:833番)
URLリンク(ideone.com)
なんとなく思い出したので記録しておきます

121:デフォルトの名無しさん
22/11/06 21:08:04.67 tOVlE3Vc.net
スレリンク(tech板:857番)
スレリンク(tech板:938番)
URLリンク(ideone.com)

122:デフォルトの名無しさん
22/12/20 20:50:42.84 qnGmlOHq.net
スレリンク(tech板:195番)
スレリンク(tech板:238番)
URLリンク(ideone.com)
CAS, atomic/compare_exchange_week()
なんとなく思い出したので…

123:デフォルトの名無しさん
22/12/29 18:49:35.41 pXMac1y7.net
スレリンク(tech板:3番)
スレリンク(tech板:8番)
URLリンク(ideone.com)


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch