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ワードに追加しておくことが強く推奨されています。
52 名前:デフォルトの名無しさん [2014/03/28(金) 00:52:34.68 ID:vM8zXvpO] 次のように表示されます。 bcc -N -v -w -ml -ecalc1 calc1.c 'bcc'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。 ** error 1 ** deleting calc1.exe
53 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:08:29.53 ID:a5++l4GP] >>52 じゃあパスが通ってないんだろう、環境変数のpathnの項を弄れ やり方? bccの使い方を説明するサイトとか本にはだいたい載ってるだろと
54 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:09:57.34 ID:CsDGXoI3] >>52 違う,いまのBorlandは clang -o calc1.exe calc1.c
55 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:12:20.51 ID:CsDGXoI3] >>53 Borlandにはbccなんてのはないから、当然>>52 になる
56 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:15:11.69 ID:CsDGXoI3] おそらく、bccってやってるぐらいだからコンパイラ・リンカーのcfg設定すら出来てないだろうな
57 名前:デフォルトの名無しさん [2014/03/28(金) 01:21:27.24 ID:ZLrJM0xQ] とりあえずフルパスでやってみろよ
58 名前:デフォルトの名無しさん [2014/03/28(金) 01:27:34.35 ID:vM8zXvpO] cfg設定はしてます。 makeを入力すると52のように表示されます。
59 名前:デフォルトの名無しさん [2014/03/28(金) 01:29:03.46 ID:vM8zXvpO] makefileは>>16 のように記述したのですが間違っていますか?
60 名前:デフォルトの名無しさん [2014/03/28(金) 02:01:11.81 ID:vM8zXvpO] CC=bcc32 に書き換えたら行けました。 そしたら今度は コマンドオプションの間違い -ml というエラーが出ました。 -mlをとってmakeをしたら上手くいきました。ラージモデル-mlは認識されていないのでしょうか? 教科書通りにしてるのにおかしいですね。
61 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 02:34:35.65 ID:Bi202b4z] >>60 俺Winの知識ないって自慢し過ぎ bcc32に限らずwinのコマンドのオプションリスト表示すら出したことないだろ winの経験が少しあれば普通はオプションリスト表示オプションを付けて起動して、 どんなオプション付けられ、それが何をするのか調べることぐらい出来ると思うが winの場合のオプションリスト表示は /? ってのが普通(常識)
62 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 02:42:52.86 ID:oiG2WFSt] スモールモデル、ラージモデルは、16ビットの時代
63 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 02:51:20.42 ID:Bi202b4z] >>62 16bitとはおいおいすぎ>< 16bitのプログラムを開発したいから、わざわざBorlandを選んだのかな
64 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 05:13:02.52 ID:FWVtOBdw] つーか、おまえらバカにして遊んでるだけだろ
65 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 10:06:39.77 ID:6uoLiniK] とんでもない。 馬鹿になんてしてないよ。 遊んでいることは否定しないけど。
66 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 11:40:09.31 ID:dRXuKu/3] >>64 そりゃsizeofをプリプロセッサが処理するような処理系を好んで使うような奴だもの
67 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 11:52:19.86 ID:WLy6H0qs] やっぱりねw
68 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 12:29:41.58 ID:dy0OpFC/] >>64 bccに-mlでバージョン出さない時点で普通に古いコンパイラを前提にするだろ
69 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 13:04:27.64 ID:RWL6RT/i] 明示するだろ、JK
70 名前:デフォルトの名無しさん [2014/03/28(金) 17:42:32.13 ID:vM8zXvpO] >>61 オプションリスト表示はどのように開くのでしょうか? コマンドプロンプトに/?を入力しても反映されません。
71 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 18:40:43.95 ID:YNdMan3y] 単に bcc32 と入力してEnterをおします むかしBorland C++Builder バージョン5か6のおまけとして コマンドラインコンパイラのオプションの表が付属していました。 それと異なります。たぶん全部を表示しないと思われます
72 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 18:47:27.10 ID:YNdMan3y] >>19 いいコンパイラだよ
73 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 18:50:58.97 ID:YNdMan3y] calc1.cってなに?
74 名前:デフォルトの名無しさん [2014/03/28(金) 21:02:05.81 ID:vM8zXvpO] >>71 表示されました。ありがとうございます。 >>73 今、オライリーのC実践プログラミングという教科書を使用しているのですが、 その中に例として出ているプログラムです。
75 名前: ◆QZaw55cn4c mailto:sage [2014/03/28(金) 21:16:01.34 ID:oXAQt7Rw] >>72 そうそう、コードガードはわりと便利、評価版をダウンロードすればいいし
76 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 12:43:43.99 ID:OMABeBxL] 本が古いなら、それに環境をあわせないと。 煽られているように、とりまそれ最新じゃないよ 時代は便利になったんだ。 codepad, ideone もあるよ。 >>1
77 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 12:48:33.82 ID:T0jzXlJE] >>76 いわゆる分割コンパイルにも対応してほしいな、makefile いれとけるとか
78 名前:デフォルトの名無しさん [2014/04/01(火) 18:44:18.29 ID:zkzJISd4] C++の基礎だけかじって、GUIプログラムも作ってみたいと思ってVisualStudioを触ってみると、様相がだいぶ違って困惑しています。 2つ教えてください。 1つ目 まず、MFCで自動作成されたソースファイルを見てもmain()?winmain()?_tmain()?すら見つかりません。 イベントドリブンだから、初期化とそれぞれのイベントに対応した部分以外は触る必要がないので隠されているのでしょうか? なんとなくでも全体の流れを把握したいのでmain()にあたる部分を見たいのですが、どこに置いてあるのでしょうか? 2つ目 VisualStudioで作成したソースを、フリーで落とせる、C++の勉強に使っていたようなC++コンパイラでコンパイルすることはできるのでしょうか? 複数のファイルに分かれたようなプログラムを書いたことがないのでmakefileとかもよくわかってはいないし、目的があって他のコンパイラを使いたいわけでもないのですが、 VisualStudioで作成したソースはVisualStudioを使わないとコンパイルできない特殊な仕様なのか、 (ファイル間の関係を理解して正しくmakefileを書けば)あくまで普通のC++の仕様に従った、一般的なコンパイラが理解できるソースを作成しているのか知りたいと思っています。
79 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 [2014/04/01(火) 19:06:36.07 ID:28c8XDsv] 1つめ。WinMain関数は自動リンクされるライブラリに含まれている。 有料VC++がインストールされているフォルダのどこかにMFCのソースがある。 初心者には膨大なのでgrepを使いこなさないと読めない。 WinMainとCWinAppを読めば動作がわかる。 2つめ。ソースプログラムやコンパイラによる。ソースがC++11なら C++11に準拠したコンパイラでなければ使えない。
80 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 19:14:53.77 ID:KWNjZyFY] 1つめはステップインで開始すればいい
81 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 19:45:25.44 ID:28c8XDsv] ヒント:C:\Program Files
82 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 19:53:07.99 ID:CqvqfScs] >>78 とりあえずVC++ExpressEdition触ってみたらいいと思う
83 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:06:30.50 ID:hppE64Hw] rc とか mc が無いとguiは難しいでしょうね
84 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:27:34.83 ID:PR3x9no5] >>82 素で言っているのか
85 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:34:07.93 ID:CqvqfScs] >>84 初期プロジェクトで既にウィンドウ生成までできてるから 流れ見るのならいけるんじゃね? 関数はもちろん調べながら
86 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:53:33.69 ID:eefQLiAy] >>82 VCでGUIソフトとなるとMFC使えないExpressは苦行だろ MFCじゃなくてQtなら良いが
87 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:58:12.28 ID:eyBPHv5q] 今時MFCとかMやな
88 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:00:40.54 ID:zkzJISd4] レスありがとうございます。 ステップインで見てみると、appmodul.cppというファイルに_tWinMain()があり、そこからさらに winmain.cppというファイル内のAfxWinMain()が呼ばれているようでした。 いきなり理解するのは難しそうですが、おいおい見ていこうかと思います。 ところで>>82 でVC++ExpressEditionを薦めていただきましたが、製品版とは何か違うのでしょうか? 今使っているのはDreamSparkで手に入れたVisualStudio2013を使っていますが、旧版やExpressEditionのダウンロードも可能です。 VisualStudio2013の情報はぐぐった限りまだ少ないので旧版を使った方がいいような気もしてます。
89 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:02:18.77 ID:28c8XDsv] 製品版あるなら製品版だけでいいよ
90 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:03:43.90 ID:28c8XDsv] expressは製品版に比べ機能が少ない
91 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:47:13.30 ID:BTv6StGE] 製品版よりちょっと動作が軽い
92 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 22:13:30.10 ID:q8+ciQV2] MFCが付いてない
93 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 22:27:29.90 ID:CqvqfScs] >>87 VS2013触った事ないからわからんけど フォームアプリケーションじゃなくてwin32アプリケーションがあればそれでソース見れるんじゃない? > なんとなくでも全体の流れを把握したいのでmain()にあたる部分を見たい こういう事かな ttp://msdn.microsoft.com/ja-jp/library/bb384843.aspx
94 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:04:38.46 ID:JvY411Bp] Expressに無料版MFCでいいじゃん。 ATLの方が簡単だけどな。
95 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:46:31.78 ID:q8+ciQV2] 無料MFCて何の事だよ
96 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 17:38:29.47 ID:SfgYmxWg] それっぽい単語を並べただけなのでマジレスしないでください
97 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 19:39:44.52 ID:aNx9C+Mf] >>95 はモグリ
98 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/03(木) 12:52:10.02 ID:lJqirrU9] www.geocities.jp/home_page22/C/dmc.html
99 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 15:33:05.57 ID:BFyxuILc] てっきりMZCが出てくる流れかと思ったがそうじゃなかったw
100 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 15:36:27.65 ID:QN8rMztS] マルチコアへの対応って、AfxBeginThreadでマルチスレッドにしたらOSが勝手にコアごとに振り分けてくれるという認識であってる? ググるとParallelクラスがあるけど、ネイティブでは使えないっぽい。
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