1read 100read
2013年03月プログラム16: 【初心者歓迎】C/C++室 Ver.82【環境依存OK】 (962)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
人工知能を作ろうver0.0.7 (584)
D言語は多分コケると思っている人の数→ (378)
VBSで便利なプログラムを作れスレ (547)
VBSで便利なプログラムを作れスレ (547)
mallocの後にfree不要と言うバカいるの?Part2 (228)
ExcelVBAで勤務表を作ろう (358)
【初心者歓迎】C/C++室 Ver.82【環境依存OK】
1 :2013/02/04 〜 最終レス :2013/03/12 エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.81【環境依存OK】 http://toro.2ch.net/test/read.cgi/tech/1354116880/ ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用) NG推奨:半角にして登録してくだい ◆QZaw55cn4c /tech/1313183984/
2 : >>1 80代からテンプレートが変、次代にはちゃんともとどおりにしておくように。
3 : >>2 どうおかしいのか書けよ臆病者
4 : モルピグの開発とかやろうと思ったらCとかC++をやったほうがいいですか?
5 : まずモルピグとは何かの定義からどうぞ。
6 : >>4 仕様が分からんから何とも言えんが、蔵ならまだしも鯖側の処理は莫大になる可能性があるからCで作ったほうがいいだろうね 全プレイヤーの処理が集中するわけだからね まずは作ろうと思ってるモルピグの設計からやれ
7 : C必須だろ。 サーバ処理をPerlとかRubyでやってたら遅すぎて話にならない。 CGIと違って常時接続なうえに、恐らくマルチスレッドも必須。
8 : Win32API質問箱はなんでキチガイの巣窟(スクツ)なんですか? なんかwinでC/C++を使うとキチになるじゃと心配です あとC/C++使っている人にはキチが多いんですか?
9 : このスレでんなこと書いてるお前もキチ こんな風に反応してる俺もキチ
10 : 便乗質問 今動いてるモルピグ鯖はCで書いたんだけど、これC++にしたら遅くなる? クラス使いたいからC++に少しずつ書き換えていきたいんだけども、C++にすると遅くなるともかいた モルピグ鯖として致命的なほど遅くならないならC++にしたい
11 : ゲーム系やろうとしてる割にはガキみたいな質問してるな
12 : 「C++にしたら遅くなる」とか言ってるのは 殆どの場合お前みたいな伝聞での思い込みか設計が糞 まともなコード書ける自信があるならC++でいい
13 : >>8 あのスレに対して強烈な悪意を持って執着している変質者が 継続的に荒らしているからスレが機能していない。
14 : たまにAPIスレに限らずこの板全体でたまにレス改変があるけど あれはどうやってるんですか?
15 : >>10 アホみたいな質問だなおい C++にしたら遅くなる?とか、例えばCのソースをまんまC++のコンパイラでコンパイルしただけじゃ何も変わらないし 少しずつ書き換えていきたいって思ってるのなら、書き換えないと実際に速度は変わらないからそれで実践しろよ ま、俺の勘と経験と、あとどこかの記事の情報によると、継承を用いた多態をほぼすべての個所でガンガンに使ったり した上で、遅くなるとして(Cが100%として)96%くらいだがな この言葉を信じるも信じないも自由だが、たった4%の為にびくびくするくらいなら、自分で実際に元のコードを残しつつ試してみたらいいと思うよ ちなみに一番重要なのは「CのコードをC++のコンパイラでコンパイルしたところで速度は変わらない」ってとこな。ベンダによっては違うかもしれないがw
16 : サンクス ちょっと書き換える方向でチャレンジしてみるわ
17 : もるぴぐ作ってる奴ってサーバはやっぱリナックスなのかな。 ウィンドウズは確か同時接続数に限界があったはず。
18 : #include <stdio.h> int main(){ int a; a = 3 + 5; printf( "3+5は%dです" , a ); return 0; } >bcc test.c >test.exe >3+5は8です なにこれ、8って表示したいだけなのに随分面倒だな。 真っ暗な画面に8ですとか出ても退屈で面白くないし。 つーかこんなことやっててゲームなんか作れるの? 数当てゲームとかじゃなくてファイナルファンタジーみたいなやつ作りたいんだよ。 こんなことやってて作れるようになるの? って最初思ってたけど作れるようになったわw 基礎は重要。 ゲーム作ろうと思い立ってまず書店にC言語の入門書を買いに行ったのは正解だった。
19 : >>17 俺は鯖はLinuxだよ Linuxはなぜかwinsock使えないし Segmentation Faultとか出て落ちまくるから かなりきつい
20 : >>13 片山とかいうゴミコテだろ? あいつ荒らししかしてないだろw
21 : >>19 >Linuxはなぜかwinsock使えないし 普通にBerkeley/POSIX socketが使えるでしょう、というか、winsock は erkeley/POSIX socket を windows に移植したもの >Segmentation Faultとか出て落ちまくるから そりゃプログラムのバグでしょう
22 : >>19 がひどすぎるw
23 : でもWindows環境(BCC)で問題ないコードをLinux環境(GCC)でコンパイルするとセグメンテーションなんたらよく出るよな
24 : はあ?
25 : それはwindowsで顕在化しなかったバグが出ただけだろ
26 : 逆にコードに興味が出てきた
27 : 変数のサイズを覚えるコツってありますか? longって何バイトだっけ?8バイト? shortが2バイトだから4バイトくらいか? いや、そもそもshortって2バイトだっけ?4バイト? booleanは1バイトだよな?1バイトか?1ビットあれば十分なのに1バイトか? intって環境によって変わるんだっけ? という状況に頻繁に陥ります 以前はポストイットに書いてディスプレイの端に貼っていたのですが ヲタっぽさに耐えきれず剥がしました そんな今では分からなくなるたびに検索している始末です 覚えるコツがあればお願いします 化学の元素記号を覚えるために「すいへーりーべ・・・」というのがありますが ああいう語呂合わせみたいなのがあると最高です
28 : サイズなんて覚えねーよアホか 覚えるにしてもこれくらいだろ short≦int≦long
29 : #include <stdint.h>
30 : booleanとか規格に無いもん持ってくんなよ
31 : >>28 コーディングしながらざっくり計算したいときとか困らないですか? malloc( sizeof( long ) * 100 * 100 ) だと、 ああ、だいたい40キロバイトか・・・ ちょっと多いような気がするな、 半分くらいにしとくか ってな具合にコーディングしながらだいたい見当をつけられるじゃないですか
32 : 必要な時に必要な量しか取らないので気にしない そんなメモリの確保の仕方はしない
33 : サイズは環境に依るし、本当に頻繁に陥るなら勝手に覚えてしまうものだと思うが。 いっそのこと毎回毎回 sizeof 表示するプログラムでも書きゃ覚えるんじゃね?
34 : 茶碗 (char 1) と ショーツ (short 2) は 長いよん (long 4) 、 不老死 (float 4) ダブルへ伊藤 (double 8)。
35 : 茶碗とショーツは長いよ〜ん♪ 不老死のダブルへ伊藤〜♪
36 : >>32 アプリケーションによっては新規作成するとき等にとりあえず適当な量を確保するだろ 他にはストリーミングのときのバッファサイズとか
37 : 多いような気がする、なんて決め方はしねえよ 値を決めるんなら根拠を持て
38 : そのうち嫌でも覚えてしまうわ
39 : バイト数を決めて確保するなら要素数は不定 要素数を決めて確保するならバイト数は不定
40 : >>27 依存するのなら面倒がらずに sizeof で記述する、でも 書き捨てならとりあえずほとんどの環境で 32bit: sizeof(int)=sizeof(long)=32 と覚えておくとよい ほとんどの環境で 64bit: sizeof(int)=32, sizeof(long)=64 なのには違和観を覚えてしまうが、なぜこうなってしまったのだろう? boolean が 1bit なのは自明、short はそのつど sizeof している
41 : 釣りはよそでやってね
42 : だいたいで量を決めるって根拠が薄いんだけどな。演習だからとかそういうことではなく、自分が決めなくちゃ いかんことを決められないって話。
43 : booleanとか無いし、boolのことなら「最低限真偽値を表現できるサイズ以上」でしかない VC++でもバージョンによって4Byteだったり1Byteだったりするし、そんな○型だから○Byteとか覚えるものではない どうしてもサイズを完全に指定したいなら、処理系に依存したビットサイズ指定の型でも使えば楽なんじゃないか?
44 : typedef して word, dword, とかね。
45 : http://codepad.org/BoeeHL03 このコードって何をやっているのでしょうか? 頭が悪すぎて、この関数がどういう処理をしているのか理解できません。 どなたか、コメントつけて解説してくれませんか?
46 : WORDとかDWORDとか使うぐらいならshortとかlongとか使うわ
47 : >>45 機械語なら俺に質問しろ!その2 http://toro.2ch.net/test/read.cgi/tech/1356735624/ アセンブラ 13 http://toro.2ch.net/test/read.cgi/tech/1314512680/ 辺りで聞いたほうがいいと思う
48 : まず何の機種のものなのかを書かないとね〜 機種関係なく、コードの流れとして結果何をやっているかだったら応えられるが
49 : >>47 ありがとうございます。 ひょっとして、スレチでしょうか? ソースコードがないので逆アセンブルした物を元にCで書き直しました。 http://codepad.org/Mwek5qUR 出力が110C8531C00・・・となっています。 110C8531D00 = 123456780 (32進数)に近いので、32進数的な何かだと思うのですが。
50 : ただ、逆汗しても、何もわからないでしょう それが、何するものなのか、わからないと...
51 : >>46 いや、その short とか long が環境によって違うので、ラップして好きにかえられるように、と。
52 : >>51 手抜きのつもりが#ifのネストですごいことになるんだよな
53 : >>40 釣りすぎる
54 : >>53 し、しまった、8で割るのをわすれてしまった‥‥
55 : >>54 そういうレベルの問題ではないんだが・・・
56 : そうそう、もっと根本的な日本語のレベルの問題 >違和観 なんだこれ
57 : そういう低レベルな話じゃないから
58 : >>55 http://ideone.com/UlZ9uF sizeof(bool) は 1 でしたね。 あとなにを間違えているのでしょうか?
59 : 64-bit 環境では VCは sizeof(long) == 4 で gccは sizeof(long) == 8 ほとんどの環境でlongが64-bitとか噴飯もの
60 : longでも環境によって違うってマジかよwwwww 俺のソフトがやばい あ、それってコンパイル環境のこと?実行環境のこと?
61 : 実行環境で変わるわけないだろ
62 : だからbit数保証したいならtypedef使えと・・・ stdint.h があるならそれ使うといいが ない環境を考えるなら自前で定義だな
63 : C言語でintが64bitでないのは64bit環境ではない
64 : マヌケはレスする資格無し
65 : long long と勘違いしているのに 100 ペリカ
66 : solarisだよ。ううん知らないけど
67 : unsigned int 同士の足し算で桁あふれ検知したいんだけど キャストなしで先に検知する方法あるかな
68 : レジスタ見ればいいんじゃね
69 : unsigned x,y; unsigned msk=0xffff; // 32bit unsigned w=(x&msk)+(y&msk); unsigned u=(x>> 16)+(y>> 16)+(w>> 16); if (u>> 16){ ・・・// OF やっぱフラグレジスタ見れ
70 : >>61 サンクス じゃあ安心だ
71 : int8_t, int16_t, int32_t, int_32_t とか使えばいいんじゃ
72 : >>67 x86でVC++ならこんな風にできるけど、ちょっとなあ・・・ unsigned int a = 0x80000001; unsigned int b = 0x80000002; unsigned int sum; bool overflow; sum = a + b; __asm { jc OF mov [overflow], 0 jmp END_OF OF: mov [overflow], 1 END_OF: } // sum == 3, overflow = true
73 : >>67 ttp://ideone.com/UypVGL あまり美しくないけど
74 : 2で割って足して、先頭bitを確認するとか? 余った分を足すのを忘れないように
75 : #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (x))
76 : >>75 間違った ×> #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (x)) ○> #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (y))
77 : >>76 片方だけでいいんちゃう?
78 : #define isOverflow(x, y) (~(x) < (y) ) これでいいか
79 : >>77 #define isOverflow(x, y) (((x) + (y)) < (x)) だけでいいね >>74 は #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1) >= (1 << (sizeof(unsigned int) * 8 - 1))) かな
80 : uint32_t isOverfloow(uint32_t x,uint32_t y) { uint32_t z; uint32_t a; a=x%2+y%2; a/=2; z=x/2+y/2; z+=a; return z&0x80000000; }
81 : >>80 ああ、そうだった。 ということで>>79 は ×> #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1) >= (1 << (sizeof(unsigned int) * 8 - 1))) ○> #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1)) & (1 << (sizeof(unsigned int) * 8 - 1))
82 : いっそのこと64bitで計算して判定すれば?
83 : 今日もWinAPIスレは楽しいな。ここもapiスレ同様に楽しいスレになると良いね
84 : お断りします
85 : hogeを禁止しない限りいずれそうなるだろ 今のWin32APIスレと同じで一回糞スレ化してしまったら元に戻すのは容易ではない
86 : お前がRば平和になるよ
87 : 他人に向かってそういう風に言うように教育さるたんだね。 素晴らしいご両親だ。 あなたのご両親はまさに社会の財産。
88 : 他人に向かってそういう風に言うように教育さるたんだね。 素晴らしいご両親だ。 あなたのご両親はまさに社会の財産。
89 : 他人に向かってそういう風に言うように教育さるたんだね。 素晴らしいご両親だ。 あなたのご両親はまさに社会の財産。
90 : Sultanだね。
91 : hogeの話が出るとすぐ荒れるな
92 : 過剰反応する荒らしがいるからな しょうがない
93 : ホゲはホゲサイトへ
94 : C++でshared_ptr常用するようになってしまったんだけど もうこれJavaに移行したほうがいいのかな
95 : shared_ptrとjavaに一体何の関係があるんだろう…
96 : hogeと片山がこないとスレに活気がでないね >>94 生ポ使わなくなったらもうC/C++は止めれ。Javaに移行せよ C/C++はhogeと生ポが命
97 : んなわけねーが、 C/C++ を使うべき所と そうでもない所は見極めるべきではある
98 : 言語の区別じゃなくてランタイムで区別すべき。 .NETフレームワークはパフォーマンスの点でどうしても ネイティブバイナリに劣る。そこがわかってれば、何を 使うべきかはおのずと判断がつくはず。 .NETが悪いわけでもネイティブがいいわけでもなく、 適材適所。
99 : .NETはJITがうまく決まったり、 C++版だとサポートの弱いライブラリだと良いこともある。 スレッド周りの便利さは.NETならではだよな。
100read 1read
1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
VBプログラマ質問スレ(Ver.6.0 まで) part62 (313)
Excel VBA 質問スレ Part28 (408)
【初心者歓迎】C/C++室 Ver.82【環境依存OK】 (962)
日下部陽一著 作ってわかるCプログラミング(第6版) (533)
「Cでプログラミングするには人生は短すぎる」か? (317)
動的言語で大規模開発 (291)
--log9.info------------------
【サーフィン】夏だなーと思う瞬間を語れ!【旬】 (677)
名古屋の最低ショップランキング 3本目 (699)
関東で伝説と言われているサーファー (307)
サーフィン雑談スッドレ (668)
サーフィンはハーフパンツの方がカッコ良い。 (202)
シーカヤックRYOの悪行 (656)
岐阜のサーファーあつまれ!! (206)
webberサーフボード (396)
あなたが考える悪徳ショップの条件 (618)
●減圧症体験記● (285)
【オヤジ】30代40代で始めました【デビュ〜】 (558)
茨城県】平井海岸サーフィン事情 PART4【鹿嶋市】 (944)
イルカを殺さないで 2 (380)
埼玉サーファー・ボディーボーダー (231)
☆関西版サーファー昔話を語るスレ ☆ (650)
【サーフィン】アンディアイアンズ死亡 (576)
--log55.com------------------
【北朝鮮】金正恩氏、文大統領からの招待を拒否 「無意味だ」と一蹴 ASEAN首脳会議[11/22]
【GSOMIA失効】韓国の灯油対日禁輸なしで石油業界は安堵★2[11/22]
【米議会上院】 午前0時に失効が迫るGSOMIAの重要性を訴える決議を全会一致で可決
【韓国世論調査】 GSOMIA終了決定 賛成意見が過半数、安倍首相に対する好感度 3%
【韓国】 日本が輸出規制強化を撤回することがGSOMIA破棄を見直す条件だ
【韓国】「不買終了!」、「失敗するって言ったじゃん」〜日本ネチズンが『無料ヒートテック熱気』を嘲弄[11/22]
【GSOMIA破棄】 韓国は日本・米国との関係よりも北朝鮮や中国を重要視か・・・専門家
【朝日新聞】 GSOMIAの失効迫る 世界に広がる波紋、見えぬ出口