[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 04/16 00:16 / Filesize : 71 KB / Number-of Response : 322
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.90【環境依存OK】



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<71KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef