1 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:45:54.57 ID:VoemgV7u] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.89【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1390171944/ ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用) hogeは禁止します、使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 なお、hogeはNGワードに追加しておくことが強く推奨されています。
101 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 16:48:02.82 ID:nM83ZP3Z] AfxBeginThreadはある関数を新しいスレッドで開始するだけだから、 parallel forみたいなことをしたい場合は、 自分で各スレッドのforの範囲を決めたり、 スレッドが終了するのを自分で待ったりする必要がある。 ネイティブで使えるパラレルライブラリはちゃんと入っているから探すべし。
102 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 19:59:43.18 ID:ZtsQOPBg] マルチコアまともに扱いたいならMFCなんか使わんやろ
103 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 20:06:44.55 ID:2QttofMo] OpenMPは楽して並列化させたい場合に威力を発揮するな ……OpenACCが使えるCompilerってフリーに無かったっけ?
104 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 20:41:28.03 ID:DD5EG69p] マルチコアを真面目に使いたいときに GUIフレームワークをわざわざ変える奴は マトモな設計が出来ない奴
105 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 20:43:23.33 ID:eu/rYsXw] MFC関係ないよね
106 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 20:59:32.67 ID:UDPO/kAP] 儂もそう思う。が、未だに世に知られていない新理論を 構築済みなのかも知れないのでもう少し語らせてみたいです。
107 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 23:36:48.04 ID:QN8rMztS] >>101 OpenMPとかPPLとかBoostとかいろいろあるんだな 調べてみるよありがとう
108 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:52:05.63 ID:Z9uNYFZQ] char なら printf w_char なら wprintf TCHAR なら _tprintf だと思うのですが、どうして三番目のやつは先頭に _ が付くのでしょうか?
109 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:56:55.10 ID:JxLvhIna] マクロって_MAX_PATHとか付くやん
110 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:50:54.62 ID:EG+AV0eK] 標準規格にはないWindows用の独自拡張だから
111 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 02:16:53.63 ID:goifYp5b] コンパイラメーカーや、ライブラリの作者は、_を多用します プログラマは、先頭に、_をつかわないようにします(おれは、そういわれた)
112 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 02:21:01.16 ID:zHyV6h3a] >>111 俺もC言語辞典(古い)でそれ見た
113 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 02:47:32.13 ID:oiRFlfhh] >>100 だけど、とりあえず何もしないループ回してCPU使用率見たら、特にマルチスレッド処理してないのに複数コアが仕事してるみたいだった。 マルチスレッドを意識してプログラムしなくてもwindows8は賢いからある程度勝手に対応してくれるのか? かといって全コアが100%に張り付くというわけでもなく、60%弱くらいでよくわからん。 これを回しただけなんだけど for (int j = 0; j < 100000; j++){ for (int i = 0; i < 100000; i++){} }
114 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 03:30:05.84 ID:zHyV6h3a] >>113 空ループって最適化したら消えるんじゃねーの? それ以前に裏で別のプロセス走ってるとか コンパイラの自動並列化が効いちゃったとかのオチな気がする
115 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 03:59:45.28 ID:JxLvhIna] >>113 1コアの100% = 2コアの50% = 4コアの25%
116 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 04:09:44.16 ID:4p3tjfYN] よくわからないがシングルスレッド高負荷処理で 同一コアと思われるハイパースレッディングの 論理CPUペアが50%ずつ(たまに60+40の非対称) になるのはWindowsでよくあること。 表示が間違ってるのではないかと思ってるけど
117 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 11:56:14.14 ID:oiRFlfhh] コンパイラの自動並列化がそれっぽい、便利なんだな もっと詳しくならないとマルチコアとか考えるだけ無駄ってことか……
118 名前:デフォルトの名無しさん [2014/04/05(土) 12:06:18.53 ID:Vwyio/wC] マルチコアとマルチスレッドはべつ。 シングルスレッド・プログラムでも、OSがマルチコア使うかもしれないし マルチスレッド・プログラムでも、OSが1コアしか使わないかもしれない。 プログラマが出来るのは主にスレッド管理だけ。
119 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 12:07:27.06 ID:zHyV6h3a] >>117 msdn.microsoft.com/ja-jp/library/hh872235.aspx
120 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 12:10:33.92 ID:Vra9QIvI] にほんごでおk
121 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 12:59:48.48 ID:zqI4wR1v] >>113 「マルチスレッドにすると勝手にコアごとに割り付けてくれる」ってのは正しい 正確には割り付けるんじゃなく、並列に実行される。 CPU使用率は、ツールやコマンドによって計算方法が違っている場合がある。 例えば4コアの場合、全CPUをフルで使った場合100%と表示するか、400%と表示するかはツール次第。
122 名前:デフォルトの名無しさん [2014/04/05(土) 13:32:33.53 ID:Gtcr4gqx] 構造体を動的に生成したいのですが、このやりかたでよろしいでしょうか? ideone.com/Yr4XRf
123 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/05(土) 13:35:36.03 ID:pKk9GxNe] >>122 型名の始めは大文字にしたほうがいいね。
124 名前:デフォルトの名無しさん [2014/04/05(土) 13:38:16.05 ID:Gtcr4gqx] >>123 そうですね^^ 型名以外には何か問題点とかありますか?
125 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 13:38:47.30 ID:NnouwwX7] はい
126 名前:デフォルトの名無しさん [2014/04/05(土) 13:39:59.09 ID:Gtcr4gqx] >>125 具体的にはどのような?
127 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 13:42:36.52 ID:30x58bFF] このやりかたでよろしいでしょうか? はい 後何が必要なのか?
128 名前:デフォルトの名無しさん [2014/04/05(土) 13:44:42.90 ID:Gtcr4gqx] >>127 ポインタの扱いが苦手でして 一応コンパイラもエラー吐かなかったので大丈夫みたいですがなにぶん心配性なもんで・・・
129 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 13:50:24.60 ID:/rC4NDRr] >>128 で?
130 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/05(土) 14:03:30.11 ID:pKk9GxNe] >>129 次のコード書いてみて。
131 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:18:00.60 ID:N2+78ftB] >>108 願望
132 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:21:03.39 ID:zHyV6h3a] >>122 そもそも構造体のメンバ変数が1つだけって…… 動的確保してるのにその個数が定数値って…… 例:codepad.org/l9spLfkF
133 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:22:25.93 ID:zHyV6h3a] おっとfreeを忘れてた…… codepad.org/3ZiOa4oN
134 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:23:25.39 ID:JxLvhIna] >>132 例だから別にいいだろ
135 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:53:12.52 ID:Vra9QIvI] ライブラリとかで予め決まっている名前以外は _ をつけるべきじゃない typedef struct 〜 の書式で宣言するなら struct の後のタグ名は不要 おまじない気分でつけるものじゃない 何よりまず、obj001からobj002にコピーしている意味がわからない この後 obj002を使おうとしていますというオチじゃないかと非常に気持ち悪い
136 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:55:30.71 ID:Vra9QIvI] ×ライブラリとかで予め決まっている名前以外は _ をつけるべきじゃない ○ライブラリとかで予め決まっている名前以外は 先頭に _ をつけるべきじゃない
137 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 15:55:38.93 ID:PXTTIzjC] > 何よりまず、obj001からobj002にコピーしている意味がわからない いや、その点はどうでもいだろw ポインタの勉強するときそういう代入してみるのってよくあることだろ。
138 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 16:15:50.31 ID:JxLvhIna] 本題以外にケチつける奴はただ優越感に浸りたいだけ 浸れてないけど
139 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 16:21:18.84 ID:LokGB3M7] ×ライブラリとかで予め決まっている名前以外は 先頭に _ をつけるべきじゃない ○ライブラリとかで予め決まっている名前以外は 先頭に _ をつけるべきじゃない、というのが持論です
140 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 17:03:41.01 ID:Vra9QIvI] 改めて見直してみたらいろいろな慣習とか規約があるみたいだな よし、今日のところは引き分けにしておいてやる
141 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 17:55:33.89 ID:YrLzJmoN] sprt使わずにdistance名乗るか
142 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 18:38:06.46 ID:zqI4wR1v] >>123 え?なんで型名を大文字で始めるの 定数と間違えてない?
143 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 19:04:31.24 ID:zHyV6h3a] >>141 実用上はいちいちsqrtしないだろ? ……ごめんなさい忘れてただけです
144 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 [2014/04/05(土) 19:22:03.80 ID:kCbCwa1D] >>142 例えばDogという型名とdogという変数名が衝突しないから、分かりやすいコードが書ける。
145 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 19:35:59.53 ID:zqI4wR1v] >>144 うん。そうです。自分が勘違いしていました・・・
146 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 22:27:29.57 ID:pxBAHja5] 型名と変数名が衝突しないルールなどこの世に無数にあるのに、 自分の使ってるルールがさも普遍的に良いものであるかのような ミスリードをする奴の言うことなど真に受けてはいけない
147 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 22:45:29.81 ID:JxLvhIna] char cszBuff TCHAR tszBuff int nCount UINT unCount typedef struct tagStructName{ } T_STRUCTNAME; いろいろやってみて自分が納得行くの使ったらいいんや
148 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 23:56:57.72 ID:d+kzfy0R] >>147 システムハンガリアンさんちーす まだ絶滅してなかったんすね! 頑張ってくださいね!
149 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 03:16:28.05 ID:PoyortF4] > 型名と変数名が衝突しないルールなどこの世に無数にあるのに、 ルール以前に、文法で型名と集成体タグ名と変数名は衝突し得ないんじゃね? ideone.com/srhSui あと、typedefされた型名って_tってサフィックスつけるのが一般的だと思うんだけど これもローカルなルールなんやろか
150 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 03:33:10.66 ID:v5F7vKVc] >>149 そのとおりだねえ ISO/IEC 9899:1999 6.2.1p1 An identifier can denote an object; a function; a tag or a member of a structure, union, or enumeration; a typedef name; a label name; a macro name; or a macro parameter. 集成体タグと typedef 名と変数は異なる名前空間だね
151 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 03:39:44.68 ID:lcQBK2Mz] >>149 en.wikipedia.org/wiki/Typedef によると、POSIXでは _t サフィックスは typedef の名前にリザーブされていて、それゆえ 名前が衝突しないようにユーザが定義する typedef には _t を使わないほうがいいらしい
152 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 03:53:44.87 ID:PoyortF4] >>150 規約での確認、dです >>151 > Such type names are reserved by POSIX for future extensions and should generally be avoided for user defined types. …マジっすか orz
153 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 04:43:31.25 ID:7TI60JXf] 衝突ってのはコンパイルエラーではなくて 人が目で見て区別がつきやすいよう 同じ綴りを避けるって話だろうに アスペなおまいらは
154 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 07:44:06.37 ID:AUPUS+0I] >>153 人の目で区別する必要があるシチュエーションってどんなの?
155 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 11:01:21.41 ID:Gd53X1PX] >>153 よほど糞な開発環境なんだなお前
156 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 11:52:04.47 ID:gdJCg3c2] あえて言おう 処理系指定で組めばおk 初心者なんだろ、何か組みあがった快感って大事だぞ
157 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 12:09:44.18 ID:BmjYK//+] 別のものには違う名前を使うもので 名前を使い回すなって当たり前のことだろ どんだけ馬鹿なんだおまえら
158 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 12:18:02.39 ID:PoyortF4] 流れぶったぎりでスマソ _tサフィックスのことは、下にも書かれてたよorz ttp://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_02_02
159 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 13:36:30.63 ID:9b0FkJFr] >Such type names are reserved by POSIX 本当にWikiは嘘だらけだな byだと適用範囲がPOSIXでなくC全般と読めてしまう
160 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 15:47:59.42 ID:PoyortF4] byよりinの方が良いかもね…スレチだけど
161 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 16:35:16.36 ID:5rOAt6qX] >>159-160 Wikiなんだから編集できるんじゃねーの?
162 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 16:39:48.19 ID:Pw+vYT2x] A「こんな説明みつけたよ! B「間違ってるねそれ。 やっぱりWikipediaはこらだから A「直せるんだから直せよ B「えっ、何で俺が? A「えっ?
163 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 16:46:07.08 ID:YqB/fCSo] byの方がいいだろ
164 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 16:56:24.24 ID:k991ba7o] A「byだとPOSIX以外にもルールが適用されると読める B「byの方がいいだろ せめて意見するときは そう考える根拠ぐらい書きたいものだ
165 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 16:57:56.33 ID:PoyortF4] byの方が良いのかorz Wiki編集するところだったよorz
166 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:15:29.97 ID:X8q2hYwd] そもそもその後の for 以下を読めば C 全般に適用とかの変な解釈するわけないと思うんだが...
167 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:22:56.79 ID:714kpsax] >Such type names are reserved by POSIX for future extensions and should generally be avoided for user defined types. → POSIXによって予約されているため ユーザー定義型での使用は避けるべきである POSIX準拠システムでのアプリケーションプログラムを超えて POSIXと関係ないオペレーティングシステムのアプリケーションにまで言及しとりますがな
168 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:41:42.06 ID:YqB/fCSo] 避けるべきということに変わりはないだろ お前は移植性の事全く考えないの? POSIXでないシステムの方が圧倒的に少ないというのに
169 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:47:23.97 ID:X8q2hYwd] で、どこに C 全般とか書いてあるんだ?
170 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:54:26.32 ID:PoyortF4] >>167 "by ISO/IEC"でなく"by POSIX"という時点でお察し(ry
171 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:56:17.95 ID:k991ba7o] なんでこんなに揉めるんだ? Cのtypedefの説明に「_tはPOSIXで予約済」 って書いてあったら POSIX系以外も従う必用性がある ように読めるだろ。 >避けるべきということに変わりはないだろ それは書いた人の主観であって 百科事典の説明に書くべきじゃないぞ。 技術文書書いたこと無いの?
172 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:58:14.20 ID:k991ba7o] 「POSIXではオペレーティングシステムの為に予約」 という表現にすれば問題なくなると思うのだが
173 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 19:59:31.29 ID:14wt57ia] >>158 いっぱいあるんだな……
174 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:13:54.33 ID:IsEOtgMD] _t はタグのtなのかtypedefのtなのかどっちですか?
175 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:16:44.81 ID:YqB/fCSo] >>171 読めないよ 俺C言語で新しいOS書いたわー そのOSでは大文字で始まる型名予約してるから使うなよ!って書いて、誰がC言語全般に影響あると思うんだ?
176 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:22:32.03 ID:YqB/fCSo] POSIXが何かわかってるやつはC言語全般に影響が〜なんて誤解しない。 POSIXが何かわかってない奴は(圧倒的多数であるPOSIXシステムで動かされる可能性を考慮して)無条件に従っておいた方がいい なんの問題もない。
177 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:22:37.76 ID:ZIQhn8PO] Wikipediaの内容についての議論はWikipediaのTalkページでやれよ
178 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:24:58.76 ID:X8q2hYwd] >>171 > なんでこんなに揉めるんだ? 単なるしきたりを > POSIX系以外も従う必用性がある > ように読めるだろ。 なんて言うアホがいるからだろ。
179 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:29:09.78 ID:k991ba7o] >>178 説明の文面が妥当かどうかの話をするときに どうしてシキタリが出てくるんだよアホですか?
180 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:30:38.36 ID:8z3KlCR7] もうここで議論するべき内容ではないどっか行け
181 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:34:13.86 ID:X8q2hYwd] convention も読めないアホは口挟むなよ (w
182 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:36:21.69 ID:PoyortF4] なかなか面白かった >>174 型名(type name)のtらしい…俺はtypedefのtって思い込んでたけど ttp://stackoverflow.com/questions/231760/what-does-a-type-followed-by-t-underscore-t-represent
183 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:44:57.82 ID:k991ba7o] >>181 「Cのsize_t(しきたりでtypedefには_tを付けたもの)は POSIXによって予約されている」 などと言っている出鱈目なWikipediaの説明が 妥当だと思うアホはすっこんでろ
184 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:57:23.37 ID:6fUxN2Jx] All rights are reserved by POSIX.
185 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 20:57:26.93 ID:X8q2hYwd] >>183 誰が妥当って言ってるんだ? 俺は単にそう書いてると言ってるだけだぞ。 まあ、しきたりで自爆したからごまかしたいんだろうけど (w
186 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 21:05:47.20 ID:frwmbROr] NG推奨ワード: Qz STL ヘッダ POSIX ←new 片山 hoge
187 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 21:23:14.93 ID:YqB/fCSo] CがNGワードになる日も近いな
188 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 21:28:22.80 ID:5rOAt6qX] >>186 え、いつの間にかSTLとヘッダもアウトになってたのかw ここは酷いインターネッツですね
189 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 21:39:32.30 ID:uqLF0x8H] >>186 ついでに スレが荒れるのでCやC++に関することはすべて厳禁
190 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 21:52:35.54 ID:EzHv0eI8] まどろっこしいな ようは2ちゃんねるの禁止が落としどころだよね
191 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 22:19:16.09 ID:2m7iHXEE] p2使えないから2ch廃止でいいよもう 出先で書き込めなくてもどかしいったらありゃしない
192 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 22:35:34.44 ID:yUhKfMaZ] ●は使えるだろ ●が無いとスレ立てできない
193 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 23:14:43.66 ID:2m7iHXEE] 浪人ってやつ? 買う気ないからひろゆきの新しい方に期待するわ
194 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 01:28:14.02 ID:AB68SSs6] SYSTEMTIMEの引き算をしたくて stackoverflow.com/questions/8699069/difference-between-two-systemtime-variable の回答4にある SYSTEMTIME operator-(const SYSTEMTIME& pSr,const SYSTEMTIME& pSl) をそのまま使って、 SYSTEMTIME ts,te,tdif; GetSystemTime(&ts); Sleep(1000); GetSystemTime(&te); tdif = te - ts; としたら、最後の引き算の行で、 エラー 1 error C2676: 二項演算子 '-' : 'SYSTEMTIME' は、この演算子または定義済の演算子に適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照) と出るのですが、解決方法がわかりません。どうしたらよいでしょうか?
195 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 02:54:37.57 ID:LXdO3Noc] >>194 teのアドレス - tsのアドレスをtdifに入れるというおかしな事してる
196 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 04:02:36.25 ID:Yfheg34z] >>194 operator-()の定義かプロトタイプ宣言を WinMain()だかtmain()だかの前でやれば解決する、と予想
197 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 04:21:05.28 ID:AB68SSs6] 皆さん アドバイスありがとうございました。 >>196 その通りでした。プロトタイプ宣言忘れていました。 無事に動いたのですが、実行結果がおかしいのです。 約1秒の差が計測できると思ったのですが、 tdifの中身を見ると、 wYear 1601 unsigned short wMonth 1 unsigned short wDayOfWeek 1 unsigned short wDay 1 unsigned short wHour 0 unsigned short wMinute 0 unsigned short wSecond 1 unsigned short wMilliseconds 515 unsigned short となっていますので 1601年1月1日0時間0分1.515秒 の差ということでしょうか?どういうことでしょうか?
198 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 04:29:51.17 ID:Yfheg34z] >>197 ttp://msdn.microsoft.com/ja-jp/library/x3399a54.aspx
199 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 06:08:42.83 ID:NjqqbTFI] >>197 SYSTEMTIME ってカレンダーの年月日時間みたいなもの。 それらの引き算をカレンダーの年月日時間にするってへんだろ。 結果のカレンダー年月日時間は0年0月0日0時0分1.515秒ですって、カレンダーではありえないだろ 期待する結果は年月日時間で表せる差じゃないか(1年2ヶ月3時間4分5秒違うとか)
200 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 11:35:54.05 ID:uM+gajuN] >>197 SYSTEMTIMEの起点は1601年1月1日0時0分0秒 つまり、ゼロをSYSTEMTIMEとして解釈すると「1601/01/01 0:00:00」になる