- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 16:10:55 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.68【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1253193779/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 477 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 12:42:59 ]
- >>475 です
vector::size() をこのように使っているのですが これでは、イテレータを渡しても、当然のことですがエラーになってしまいます、 なんとかイテレータを渡して、そのコンテナのサイズがわからないものかと思案しています。 template <class Container> inline size_t Size(const Container& c) { return c.size(); }
- 478 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 12:55:04 ]
- 要素へのポインタを所有しているコンテナを特定する手段があるなら可能
- 479 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:02:22 ]
- >>470
ボトルネックの個所で スタックだろうがヒープだろうがメモリの確保解放するコード書くのは論外だろう
- 480 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:09:48 ]
- >>479
秒間一万回程度の半端なボトルネックだと、スタックかヒープかで致命的な事態に なるだろうな。 まぁ、違いを知った上で、大差無いと判断したところで使うのは最初から問題無い。 「違わない」と断言するのは激しく問題があるってだけ。カーネルに落ちる場合は スタックの数万倍も重いことがある訳で。
- 481 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:10:09 ]
- >>478 thx です
関数オブジェクトを作っていて、引数が多くなってしまい なんとか、減らせないものだろうかと思い質問したしだいでした 要素へのポインタを所持しているコンテナを引き渡すのなら、 要素数を引き渡すだけのことなので、同じくらいのコストがかかりそうで あききらめますが、要素へのポインタを所持しているコンテナを引き渡して 要素数を求める方法へ関心があります、単純な実装例をご教示願えませんか。
- 482 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:29:21 ]
- c.size()
- 483 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:45:50 ]
- >>477
イテレータのペア(開始と終端)を取る関数オブジェクトなら std::distance(it1, it2) で [it1-it2)間の要素数が求められるよ。
- 484 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 14:20:44 ]
- >>475,477,481
ひとつのイテレータからコンテナの要素数を求める一般的な方法はないよ。 実装依存の機能でそういうのがあるか、自分で実装すれば可能。 beginとendがあるなら>>483のでいける。
- 485 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 18:59:20 ]
- >>484ありがとう
>実装依存の機能でそういうのがあるか、自分で実装すれば可能。 もし仮に実装するなら、どんな感じになるのでしょうか? まずは、イテレータのアドレスを取得しなければならないのはわかるのですが それ以降の展開が想像できません、向学のために概略だけでも教えてもらえないでしょうか。
- 486 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 19:11:13 ]
- >>485
MinGW だとイテレータはコンテナのアドレスを持ってるようだ
- 487 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 20:54:21 ]
- そもそもイテレータ渡ししてるのに本当に要素数が必要なのかから考えるべきな気がする。
- 488 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 21:51:29 ]
- >>485
元のイテレータの派生クラスかラッパークラスを作って、そいつに要素数か親コンテナのポインタを持たせる。 しかし、親コンテナの要素数が必要な処理ってどんなだ? コードをさらしてみる気はないか?
- 489 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 21:56:41 ]
- 技巧する必要なし
元のをを渡せよ。
- 490 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 22:09:55 ]
- 引き数へらしたいならレンジイテレータでもつかってコンテナまるごと渡せよ
- 491 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:07:20 ]
- 演算子のオーバーライドって一般企業でも使ってますか?
パッと見どうゆう動作をするのかわからないから、危険な香りがするのですが。 例えば、タスクシステムを使っていて、とあるクラスをnewするとそのクラスをタスクに追加したりするような仕組みの場合 一見メモリリークするコードに見えます。
- 492 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:13:44 ]
- >>491
基本的にそういうことはドキュメントに書いておくべきことじゃないかなぁ。 読まない人もいるみたいだけどね。読みやすいドキュメントって言うのもむずかしいけど。
- 493 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:13:49 ]
- >>491
何を使っても酷いことになる人はどこにでもいるよ
- 494 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:28:12 ]
- >>491
そんな事言ったらoperator+をオーバーロードしてマイナスの動作を させるへそ曲がりな事だって出来るぞ 仕様書でちゃんと最初に決めとけ
- 495 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:46:43 ]
- >>491
危険だよ。だから是非使うべきだと感じないなら使うものではない。ただ、例えば、 class に + or - があればすごく楽な場合があるでしょ。operator overloading して a+b+c と書くのと a.plus(b).plus(c) とか書いたり してわかりにくくなる(そしてミスしやすくなる)のとのどちらが良いか。 どう使うかによる。グループで仕事してるなら合意が必要。たとえば、一応 ttp://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Operator_Overloading#Operator_Overloading
- 496 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 22:15:04 ]
- >>491
基本的には使わないだろう。企業に限らず。 でも、例えば多倍長整数クラスとか、有理数クラスとか、ベクトルクラスとかを 作るなら、operator+を定義しても恐らく誰も間違わない。そういう場合は使う 方が楽という判断も十分有力だし、それでも使わないという判断もやはり有力。
- 497 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 22:17:08 ]
- まぁ、暗黙の変換なんかと同じだな。
無闇やたらと使うのは糞設計だが、完全排除すれば良設計というものでもない。
- 498 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 22:28:05 ]
- 微妙なら()つけろよ。簡単のために公開しない関数内部で使うなら別に良いだろ。
- 499 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 23:31:40 ]
- >>497
俺は argument 一つの constructor はやっぱり explicit 付けてる。 operator overloading の方はたまに使う時がある。
- 500 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 03:04:26 ]
- スマポなんかは暗黙の変換に対応しないと微妙
- 501 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 06:28:54 ]
- >>491
× オーバーライド ○ オーバーロード あと、タスクシステム死ね。 > とあるクラスをnewするとそのクラスをタスクに追加したりするような仕組みの場合 > 一見メモリリークするコードに見えます。 具体的なデメリットがわかってるのに、なんでそのうえで一般論を持ち出す必要があるの?
- 502 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:46:36 ]
- すいません。下記のようなことがやりたいのですが、
”\debug.cpp(13) : error C2059: 構文エラー : ')'” と表示されコンパイルが通りません。どうしたらいいですか。 void Debug::create_debug_message(...) { char tmp_str[100]; sprintf(tmp_str, __VA_ARGS__); // line: 13 }
- 503 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:50:37 ]
- >>502
void Debug::create_debug_message(const char *format, ...) { char tmp_str[100]; va_list ap; va_start(ap, format); vsprintf(tmp_str, format, ap); }
- 504 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:58:30 ]
- できました。ありがとうございました。
- 505 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:54:29 ]
- そういや可変長引数長い事使ってないなあ
リハビリしとかなきゃ
- 506 名前:491 mailto:sage [2009/11/03(火) 18:00:50 ]
- >>492-497
多倍長整数クラスの+のように、直感的にわかるような動作をするものなら演算子のオーバーロードをしても良いが 基本的に多用するものではないということですね。 >>501 >×オーバーライド 間違いを確認しました。 >具体的なデメリットがわかってるのに、なんでそのうえで一般論を持ち出す必要があるの? デメリットがあっても、それを打ち消すようなコーディングの仕方や デメリットを凌駕するメリットがあれば、演算子のオーバーロードを積極的に使っていこうと考えていたからです。 私はC++を勉強しはじめてまだ日が浅いので、私の知らない何かがあるのかもしれないと思い、質問させてもらいました。 一般的な演算子のオーバーロードに対する考えが聞けて、とてもためになりました。 ありがとうございます。
- 507 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 12:21:15 ]
- >>506
業種によっても違うんじゃないかな。 私のところは画像処理や数値計算関係なので座標の足し算とかベクタの掛け算なんかが 頻発するので演算子オーバーロードはあるとないとじゃ大違いだから。
- 508 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 16:41:27 ]
- ベクトルの掛け算も演算子オーバーロードしちゃうのか…
内積にすんのかな
- 509 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 16:48:04 ]
- スカラ倍のことじゃないの
- 510 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 17:07:21 ]
- 内積、スカラ倍両方オーバーロードするのもありだな。
いずれにせよ、ベクトルや行列使った数値計算とかは オーバーロードしないとコードが読めなくなるからリスクとの トレードオフとして悪くないと思う。
- 511 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 17:18:02 ]
- インラインアセンブラと組み合わせれば演算子でSIMDも可能
って考えるとなんか夢が広がるような気がするよね 実際には関数呼び出しだって同じなんだが、表記的に 高水準(抽象的)・低水準(具体的)の混在具合が脳汁出そう
- 512 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 17:59:50 ]
- ベクタ×ベクタは演算ライブラリによっては内積だけど、
演算ライブラリによっては敢えて用意していないね。 それでもスカラ積があるだけでも随分違うけど。
- 513 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:19:06 ]
- 「絶対に内積だろ」とは言い切れないし、スカラ積だけ対応するのが個人的には好み
だけど、内積でも別に文句言うほどじゃないかな
- 514 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:55:01 ]
- スカラ積って内積じゃないの
- 515 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:59:47 ]
- iostreamやBoostに見られるような「Cの文脈からかけ離れた演算子オーバーロード」
は、実際使ってみると割と平気だったりするんだよな。 ただ、見慣れない問題に直面する可能性も高いから、やっぱりお仕事だと微妙かな。 boost::formatとか激しく便利ではあるんだけど。
- 516 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:57:49 ]
- >>514
数Bやり直せw
- 517 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:06:14 ]
- >>516
おまえこそやり直せ
- 518 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:14:19 ]
- 小学生ktkr
- 519 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 03:19:55 ]
- スカラー積=内積
ベクトル積=外積
- 520 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:51:58 ]
- >>503
va_endわすれてるぞ
- 521 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:18:30 ]
- スカラー積ってスカラ倍のことじゃないの?
- 522 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:24:31 ]
- もうその話題は終わり
- 523 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:48:19 ]
- namespace Hello
{ class A; }; namespace World { class B; }; ヘッダーファイルに上記のように書いたところ、 class Bの所属がなぜかHello::World::Bとして扱われてしまい、 コンパイルエラーになります。これはコンパイラのバグでしょうか? 環境はwinXP x86 VC++ 2008Expressを使ってます。
- 524 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:01:37 ]
- どうせ打ち間違い
523自体は正しい
- 525 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:03:15 ]
- ていうかエラーメッセージ書けって
- 526 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:07:06 ]
- もう少し状況を詳しく書いてみます
"helloworld.h" namespace Hello { --class A; } namespace World { --class Hoge; --namespace Button --{ ----enum Value { A, B, C }; --} }; "hoge.h" #include "helloworld.h" namespace World { --class Hoge --{ --public: ----Button::Value m_value; --} }; "error messeage" C3083: 'World': '::' の左側のシンボルには、型を指定しなければなりません C2460: 'Hello::World::Value::m_value' : 宣言されている 'Hello::World::Value' を使用しています。
- 527 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:10:32 ]
- >>526
namespace Helloが閉じていない。 # まぁ、想定の範囲内だな。
- 528 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:11:50 ]
- Hello::
まで書くとvisual studio のインテリセンスがWorldや ヘッダーに書いた他のnamespaceを全部含んでしまっているように表示します。 World::やその他のネームスペースからはHelloを参照することはありません。
- 529 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:14:22 ]
- ;が抜けているのに気づけない間抜けであったか。
- 530 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:14:30 ]
- 本当だ。すいません小さなミスでした。
- 531 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:32:52 ]
- VCなんですけど
floatとdoubleはどっちが速いですか?
- 532 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:39:13 ]
- >>531
一概には言えませんが、doubleで組んで速度に不満があったら両方実測して比較すればよいでしょう。
- 533 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:43:23 ]
- floatが速いよ
昔は、doubleに変換されるという説もあったが、いまは直に計算する。
- 534 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:45:13 ]
- 特に配列に格納すると、メモリ呼び出しが半分のサイズですむから
計算だけではなく、メモリサイズと呼び出し時間が短縮できる。
- 535 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:52:00 ]
- フロートがSSEで二倍速い
- 536 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 12:10:08 ]
- namespaceって;必要だっけ?
- 537 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 13:15:38 ]
- 必要じゃないことはないですよ
- 538 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:20:32 ]
- floatにしてみます。
- 539 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:43:18 ]
- floatは有効桁数がIEEE754では6桁しかないよ
だから用途が限られる 画面座標とか
- 540 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:46:27 ]
- 配列のインデックスは符号無しですか?
- 541 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:05:17 ]
- 厳密に言えば、いいえ
- 542 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:58:15 ]
- ポインタの計算だからマイナスもある
- 543 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:14:31 ]
- まず配列のインデックスの定義をだな
- 544 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 20:29:16 ]
- namespace は ; いらないよね??
class は ; いるけどさ。 ていうか namespace {} に ; つけないで普通に使っているんだが…
- 545 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 20:35:52 ]
- クラス定義は文だから;が必要で名前空間はスコープだからいらない。たぶん
- 546 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 20:46:17 ]
- 確かポインタ間の距離はptrdiff_t型で符号あり整数じゃね?
- 547 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 21:08:49 ]
- struct foo { int bar; } buzz;
class foo { int bar; } buzz; namespace foo { int bar; } buzz; // ← これだけ明らかにおかしく見えれば大丈夫
- 548 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 10:11:30 ]
- >526がセミコロンが抜けているのは事実だが、>527は間違い。
>534、>535は正しいが、速度よりも>539の問題の方が通常は問題になるので、doubleを使っておくのが無難。 ポインタ演算については>542、>546の通りだが、>543の言うように「インデックス」が何を指しているかが問題。
- 549 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:20:14 ]
- C/C++でZipファイルの追記したいのですがいいライブラリありますか。
DLL使うと、中間ファイルを生成してから追記するので遅いです。 100Mのzipファイルならそれをopenして追記したいです。
- 550 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:31:39 ]
- tarならできるだろうけどzipはむりじゃね
- 551 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:33:27 ]
- zlibは圧縮は出来るけど、書庫のフォーマットには対応してないですよね?
- 552 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:36:35 ]
- >>550
このwebサイト収集するやつは、zip追記してます。 でもC言語でやってないです。 www.unixuser.org/~euske/python/webstemmer/index-j.html
- 553 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:01:44 ]
- >>550
外人がいいやつ作ってくれました。 これで追記出来ました。 www.wischik.com/lu/programmer/zip_utils.html
- 554 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:19:57 ]
- >>548
> doubleを使っておくのが無難。 それは微妙。どっちが向いてるのか考えるべき。ちょっと考えれば大体正解が選べるし。 例えば、APIがfloatを要求してるような場合はfloatが無難。 floatは精度に注意、floatとdoubleを無駄に混在させるのはアホ、SSEでは圧倒的に速度 が違う、SSE使わないならほんの僅かにfloatが速い、くらいであとは自己判断かな。
- 555 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:10:20 ]
- 混在を避けるのは鉄則。doubleの演算速度よりも、float⇔doubleの変換の方がよっぽど遅い。
- 556 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:12:50 ]
- >>555
え?
- 557 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:14:14 ]
- 下のようにvectorの入った構造体があります。
typedef struct { std::vector<int> foo; std::vector<float> bar; } HOGE; これを値渡しすると、各vectorのコピーコンストラクタはちゃんと呼ばれるんでしょうか。
- 558 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:17:36 ]
- >>556
それも環境次第だとは思うけど、少なくとも整数の符号拡張みたいに単純にはいかない。 フォーマットの変換が必要だから。 x86のFPUだと相当なコストがかかるけど、SSEなんかだとどうかは知らない。
- 559 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:24:57 ]
- >>557
ヒント : C++では基本的にclass と struct は同等の扱い デフォルトのprivateとpublicが違うだけ
- 560 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:13:15 ]
- >557
ヒントより短い答え:呼ばれます。
- 561 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:03:45 ]
- そんな巨大になりそうなもの値渡しして欲しくないな
- 562 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:24:42 ]
- 大丈夫
俺のちんこよりは小さいから
- 563 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:50:31 ]
- >>553
よく読めてないけど、オンメモリで展開、追加、圧縮をやってるんじゃないの?
- 564 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:55:53 ]
- >>561
新人「大丈夫ですよ先輩。sizeofで見たらたった80バイトです」
- 565 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:00:20 ]
- ああそうだ、俺のコンパイラは構造体に巨大な配列を入れて
値渡しすると馬鹿みたいにpushの荒らしになる rep movsが使えないのはpushが逆順になるからだろうな それなら簡単なループ組んで転送すればいいと思うのに pushを配列数分吐くもんだからexeが巨大になって馬鹿みたい
- 566 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:00:29 ]
- >>563
追記は新規に作ったファイルだけだった 既存ファイルには追記できなかった 追加しようとしたらデータ初期化されたよ
- 567 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:09:08 ]
- zipフォーマットここに書いてあるから追記自分でやってみるか
www.tnksoft.com/reading/zipfile/arczip.php www.tnksoft.com/reading/zipfile/nonarc2.php
- 568 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:17:40 ]
- もう一度いうけど、tarならできるだろうけどzipは無理だと思う。
無圧縮zipならできるかな
- 569 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:20:34 ]
- 100個のファイルを圧縮したzipを用意して、それを展開して、一つファイルを増やして、
圧縮して、バイナリ比較して、「追記」が実現可能かどうか見てみたら。 無圧縮でもそれやってみたら。
- 570 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:30:05 ]
- 駄目な理由はなんだ>
絶対出来るはず
- 571 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:25:11 ]
- rep movsとか最近のコンパイラは間違っても使わないような
- 572 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:39:47 ]
- サイズ重視のコードなら使う
- 573 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:11:52 ]
- 俺のコンパイラは断りもなくmemcpy呼んでるな。構造体の初期化には勝手にmemset使うし。
- 574 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:18:32 ]
- >>573
それで何か問題でも?
- 575 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:23:41 ]
- >>571
変数の初期化に使われているよ 特に配列だと間違いなく出てくる
- 576 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:34:11 ]
- そもそも構造体の値渡しが必要な状況ってどんなの?
ポインタや参照が使えない状況ってのが思い浮かばない。
- 577 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:55:20 ]
- 逆に考えるんだ。ポインタでは困る場面なんだよ。
それが必要な状況?それは↓
|

|