【BTC有償】C/C++/Java/C#/JSの問題を片付けます(5) [転載禁止]©2ch.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
84HUO なぜ心理学はプログラムを書かないのか
それは書かないからではなくて「書けない」からである >>52
https://mevius.5ch.net/test/read.cgi/tech/1524570314/795-796
https://ideone.com/uQKe4J
・ファイルスタンプ(ディレクトリの場合も含む)もコピーする
・"\\?\" プレフィックス付き絶対パス、win32api W系の呼び出しとして、win7 の場合にも MAX_PATH の制限がなくなった
参考:https://docs.microsoft.com/ja-jp/windows/desktop/FileIO/naming-a-file
この文書には明記されていないが、"\\?\" プレフィックス付きパスは絶対パスのみが有効であり、相対パス指定はできず "."、".." も使用できない
→GetCurrentDirectoryW() をつかって相対パスから絶対パスを作る
UTF-16 の表現は C++11 char16_t および文字列リテラル u"" を使用した
windows.h ヘッダでは #define UNICODE のもとでの TCHAR が char16_t に該当する→念のため static_assert で確認している
各 win32api システムコール呼び出しの記述では (char16_t *) を (TCHAR *) にキャストするしかない… https://peace.5ch.net/test/read.cgi/tech/1313183984/34-35
34 名前: ◆QZaw55cn4c [sage] 投稿日:2011/12/07(水) 05:29:43.73
>>31-32
ビットマップのヘッダ情報の読み込みに関して、処理系依存を極力排除しました。(「マイナス表現を 2 の補数とする」にのみ依存します。)
※ビッグエンディアンの環境をお持ちの方に動作を確かめていただけるとうれしいのですが。
http://hibari.2ch.net/test/read.cgi/tech/1322562648/61 のビットマップも処理できるようにしました。
bmp2pgm: http://codepad.org/55el9rrQ
pgm2bmp: http://codepad.org/pAaFqQD3
35 名前: ◆QZaw55cn4c [sage] 投稿日:2011/12/07(水) 21:03:22.14
http://hibari.2ch.net/test/read.cgi/tech/1322562648/106
>>31-32
>>34 は 16色ビットマップ(1ドット4ビット)にてバグがありましたので訂正します。16色ビットマップで変換後 pgm が縞々になってしまいます。
bmp2pgm http://codepad.org/9oA2nX0E
pgm2bmp http://codepad.org/EqeOYIPh
---
bmp2pgm https://ideone.com/7lX1Pz
pgm2bmp https://ideone.com/VVhoaT >>75
いくら勉強してもプログラムが書けないヒトも居るんだよ。自分の技術を活かしなよ。そのままだと消えちゃうよ。 >>76
と思ったが、標準化も合理化もされてない汚いコードだった。同情する。 >>77
C ならばこんなもの、では?
標準化・合理化とはどういう意味か、キーワードを教えていただけませんか? >>78
標準関数labsやabsを差し置いてiabsを定義したり、標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
また、入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。 gotoの連続は時代遅れだし、IDEデバッグの一発で変数の値を調査できるのに今どきprintfデバッグはないでしよう。 >>79
ありがとうございます
>標準関数labsやabsを差し置いてiabsを定義したり、
>標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
確かに耳がいたい、特に 2011 年の頃は stdint は意識していませんでした
>入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。
入出力が 1 バイトずつなのは趣向です、つまり「処理系の」エンディアン依存を回避するための書き方を模索していたから
1関数内で必要以上に複雑に機能を混ぜたり、というのは、ある意味やっつけ仕事だったような気がしますから、この点はもう少し整理できるのやもしれませんね >>80
goto は使いどころだと思いますし、私の goto の使い方はよくあるやりかたかと
printf デバッグ‥‥まあ、#if 0 の中の話は許してください‥‥ エンディアンの問題はプリプロセッサでコンパイラのエンディアンの種類を判定して、必要ならば後で各整数値のバイト順を入れ替えることで対処可能。 >>83
そのプリプロでエンディアン判定って具体的にどうするのですか?もしかしてコンパイラ依存のプリプロなのでは? >>86
1. endian.h は標準ですか?
2. __ORDER_LITTLE_ENDIAN__ は誰が定義するのですか?
3. 私は、エンディアンに依存する部分をちまちま #if でわけわけするくらいなら、最初からどっちでも動くコードを書く価値観を(ときどきはそうでないにせよ、たまには)持ちますが、片山さんはどうお考えですか? >>87
ここ有償のスレでしょうが
あんたが質問したらそれも有償で答えをもらうつもりってことですね >>88
そのつもりです
>>1-4 のテンプレートに従って回答者が BTC を提示するのを待ちますよ 順番に見ていくよ。
#if defined(__linux__) || defined(__ANDROID__)
この行はライナックスかアンドロイドであるか確認している。そうなら<endian.h>をインクルードできる。
#elif defined(__Apple__)
この行はアポウ製品かどうか確認している。アポウなら
<machine/endian.h>
をインクルードできる。
これでエンディアン関連のマクロが定義されるであろう。 __ORDER_LITTLE_ENDIAN__
これはコンパイラまたはエンディアン関連のヘッダーが定義する。
いちいちちまちま定義するのは、エンディアン関連の処理の最速を狙うため。それがそんなに重要でなければ自己流で書けばいい。 最後にこの行:
#elif defined(_WIN32) || defined(__i386__) || defined(__x86_64__)
32ビットまたは64ビットのWindowsコンパイラなら_WIN32が定義済み。また、i386コンパイラならおそらく__i386__が、定義済みである。
これらはすべてリトルエンディアンである。 どのシンボルを誰が定義するのかがどこで標準化されてるのかって話だろ 少し改良しました。
https://github.com/katahiromz/swap_endian/blob/main/swap_endian.h
エンディアン関連はまったく標準化されてません。ほとんどOSごとに違うし、明文化があまりされてない。OS作る人が別々にテキトーに定義しちゃったらしい。 >>96
なるほど、価値観を率直に提示いただき感謝します makeファイル内でエンディアンチェック等の小さなコード走らせて define を生成することもできるよね >>98
まけファイルって、int main(){ return r; } の r を識別するのですか?成功(ゼロ値)か失敗(非ゼロ)かしか見ていないかと思っていました、まあそれだけでも使えるかもしれませんが、というか、返り値で挙動を変えることのできる make ってあんまり聞かないな‥‥ >>99
例えば endian.h を生成するんだよ、そのコードで。 Windows環境なんですがddao35.dllって何者?
Windows SDKにインポートライブラリだけはあるので
CdbDatabaseとかCdbRecordsetとか書いてビルドは通るんだけど
dllが無いから実行時にエラー。
Windows 10環境複数、Windows 7、Windows XPでdllを探し回ったが同じ
(どの環境もインポートライブラリだけは"C:\Program Files"内にある
ひょっとしてDAOよりさらに古いODBCドライバか何か?? 425 名前: ◆QZaw55cn4c [sage] 投稿日:2012/09/12(水) 04:03:24.28
http://toro.2ch.net/test/read.cgi/tech/1342966104/633
>>365 を元にして出題の仕様にあわせました。
http://ideone.com/WtkcM
本当にΟ(nlogn)かはよくわかりませんが、バブルソートよりはましなようです。http://ideone.com/Dsiv2
なお >>365 はコムソートの実装自体にあやまりがあることが判明しました。次に訂正します。
http://codepad.org/1KriOa6z クイックソートの最悪計算量はO(N^2)、
と世間一般には認識されているが
クイックセレクトと組み合わせたら最悪計算量もO(n*log(n))になる、
というオーダー記法マジック、 >>109
イントロソート、というのもあるようですね そこまでするならクイックソートなんか使わん
実装の簡単さしか売りがないんだから >>111
実用的なソートでは、ソート範囲がある程度まで狭くなったら選択ソート・挿入ソートに切り替えますよ
そういうところは、あなたお得意の実時間評価的に優位でしょう? 「あなたお得意の」????
俺が誰だか知ってるの?