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


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

スレを勃てるまでもないC/C++の質問はここで 5



1 名前: ◆h6A7qfFFu6 mailto:sage [2008/12/29(月) 11:05:07 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/

139 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:09:22 ]
>>130
反論できないからってごまかしてんじゃねーよカス

140 名前:デフォルトの名無しさん [2008/12/30(火) 17:11:30 ]
GCが標準装備だったら、高性能なハードでない場合に困るだろ。
組み込みとか

組み込みシステム - Wikipedia

具体例
家庭用電気機械器具
炊飯器、洗濯機、エアコンディショナー
デジタルカメラ
テレビ、ビデオデッキなどAV機器
ゲーム機、携帯電話などのデジタル家電
エレベーター
信号機
複写機
自動販売機
パチンコ機、パチスロ機、スロットマシン

141 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:13:54 ]
世の中、参照カウントでGC付きって言っている言語処理系だってあるんだから、
C++でコーディングするときも常にshared_ptrを使えばいいんだよ。

>>127の「newしたら必ずdeleteすること」を次のように言い換える。
new→newしてshared_ptrの構築
delete→reset()
128の問題は無くなるし、循環参照もnew-deleteで(手動でやれば)問題にならないならば、
shared_ptrでも手動でやれば問題ないはず。

性能とか組込とか知らんがなという前提で。

142 名前:デフォルトの名無しさん [2008/12/30(火) 17:18:21 ]
ガベージコレクションはプログラムの本来の動作とは別に時間のかかる処理であり、実装によっては一旦処理が開始されると他の処理を止め、CPUを長時間(数百ミリ秒から数十秒)占有することもある。
さらに、ガベージコレクションの動作タイミングの予測やCPUの占有時間の事前予測などが困難なことから、デッドラインが決められてるリアルタイムシステムには向いていない。


ガベージコレクション - Wikipedia
ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

143 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:19:32 ]
あんまり関数を分けると重くなるから良くないって聞いたことあるけど、それって
昔のCPUがしょぼしょぼの時の話しで今ではそれほど気にしなくていい?
たまに数行づつで関数に分けてる人いるけどそのぐらいまでやっちゃっていいの?

144 名前:デフォルトの名無しさん [2008/12/30(火) 17:22:38 ]
>>143
程度によるが、最新のコンパイラを使っていれば差はたいしてでない。
分割したりオブジェクト指向にすることは、管理が楽になるという利点がある。

145 名前:デフォルトの名無しさん [2008/12/30(火) 17:25:21 ]
でも、再帰呼び出しは確実に遅くなるよ。ループに書き換えられるという再帰定理というのがあるので
なるべく再帰呼び出しは使わない方が良い。

146 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:26:55 ]
「早すぎる最適化は諸悪の根源」

実行性能が許容できないくらい悪くて、その原因が本当に
関数呼び出しのコストだと分かった時点で初めて
そういう小手先の手段に出るものだ

そんな関数の分け方くらいではまず間違いなく性能に何の影響もないと思うが

147 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:27:36 ]
>>143
数行とか一行の関数を書くとか普通だから。



148 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:29:27 ]
>>139
おまえは常に「覚えておいて」プログラム組んでろカス

149 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:30:33 ]
>>145
意味が分からない。
「末尾再帰だったら、再帰でもいい」とかだったら意味が通じるけど。
(再帰だって、速度に問題なかったらふつーに使うわな。あたりまえだけど)

150 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:31:25 ]
再帰はループに書き換えられるよ!って言ってるんだろう

151 名前:デフォルトの名無しさん [2008/12/30(火) 17:35:07 ]
関数呼び出しに、時間食ってるのでは? と予測してマクロ関数に書き換えてみたり
するのだが、ほとんど差が出ないという経験から関数として\を使うマクロは使わないことにしている。

152 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:39:09 ]
ありがとう。とりあえずガンガン関数に分けちゃって問題ないんだね
これからはガンガン分けていくことにします

153 名前:デフォルトの名無しさん [2008/12/30(火) 17:44:46 ]
MS-BASICはガベージコレクション内蔵らしいね

154 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:47:08 ]
>>143
数行の関数を作ってもOKだし推奨

関数の呼び出しのコストが問題になるのはループ内とかとにかく繰り返し多数呼び出される場合だね。そういう場合はinlineを使う。
仮想関数は少し重めだからループ内では要注意

最近のコンパイラはinlineの指定をしなくても勝手に判断してインライン展開をしてくれるから気にしないでいい。

155 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:52:21 ]
>>153
ああ文字列の操作領域だろ
確か3Kバイトが標準で一杯になったらGCを走らせる
8ビットならではの世界だった

N88BASIC(86)はもう少し広いだろうが

156 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:01:55 ]
突然マイコンが止まるあれだね



157 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:11:57 ]
そうそう
BASICで文字列を頻繁に操作していると時々止まった
その謎が解けるまで(つまりはGCだという事を知るまで)時間がかかった



158 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:29:05 ]
GC GCってゲームキューブじゃないのなw
何の騒ぎかわからんかったよ

159 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:31:28 ]
>158
ゲーム関連板ならゲームキューブのことだろうけど
ここはプログラム板だぞw ガベージコレクションに決まっておろう

160 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:07:49 ]
どの言語を覚えればいいの・・?
C言語ってだめなの??

161 名前:デフォルトの名無しさん [2008/12/30(火) 19:09:13 ]
Cでいいよ。C++でもいいけど。

162 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:25:30 ]
C++ってCの付けたし見たいなものだよね・・?

163 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:26:54 ]
CがC++の一部を抜き出したものだと思え

164 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:28:13 ]
わかりました

165 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:29:05 ]
>>162
いまや全くの別物のくせに、そういう偏見が間違っているとも言えない微妙な関係。

166 名前:デフォルトの名無しさん [2008/12/30(火) 19:37:27 ]
まあ、質問スレを共通にされるくらいだから、同じようなものだ

167 名前:デフォルトの名無しさん [2008/12/30(火) 20:50:04 ]
結論としては、shared_ptr以外は不要ってことで、おk?



168 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:52:27 ]
>>167
他のスマートポインタも使い方憶えればいいんじゃない?

169 名前:デフォルトの名無しさん [2008/12/30(火) 20:55:54 ]
struct shiken_in test;

memset(&test,0,sizeof(test));

このような文があるのですが、
&testがさす意味はなんなのでしょうか?
&がつく意味がよくわからないのです

170 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:58:52 ]
アドレスです

171 名前:デフォルトの名無しさん [2008/12/30(火) 21:02:39 ]
>>168
覚えたとしても、それらを使い間違わないようにビクビクしながら使うよりは、
単純にshared_ptr使った方が、バグが少ない堅いコーディングができると思うけど。

172 名前:デフォルトの名無しさん [2008/12/30(火) 21:07:19 ]
>>170
ポインタの宣言がなくてもアドレスは使用可なのでしょうか
ていうか、子の場合アドレスで指定する意味はなんでしょうか?

173 名前:デフォルトの名無しさん [2008/12/30(火) 21:10:39 ]
コピーを避けるためです。

174 名前:デフォルトの名無しさん [2008/12/30(火) 21:30:52 ]
ポインタならコピーをされる?

175 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:38:00 ]
ポインタなら、ポインタだけ渡せばいいからデータ自体はコピーされない


176 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:43:01 ]
>>167
自ら使うのはshared_ptrだけでもいい。次期標準にも入る。

入るおかげで、C++0xでは、標準に入っていないのは無視してOKと言えるようになるんだが。
例えば、>>105で挙げられているintrusive_ptrは知っていても大多数が使ったことないだろう(俺もだ)。
scoped_ptrはauto_ptrとまとめてunique_ptrになる。
#びくびくせず自信を持って使えるならweak_ptrも使ってほしい。


177 名前:169 [2008/12/30(火) 21:51:30 ]
ますますよくわからなくなってきた

まず、構造体を宣言して
sizeof(test)でなにをかえすんだろうか
testの中身は宣言だけしてるだけで、実際何もはいってない?いや、0ならはいってるのかな
で、memsetでそのtestのアドレスの先頭からだけど、testのアドレスの中身じゃなくて、アドレスの
先頭から0で埋めるとかおかしくないのかな。アドレスであってアドレスが差す値じゃないから。



178 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:57:22 ]
memsetは、アドレスが指す領域を指定した値で埋める関数だよ


179 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:57:33 ]
sizeof testはsizeof (struct shiken_in)と同じと決まっている。
memsetにはアドレスを渡すけど、
memsetが0で埋めるのは、アドレスが差す値。

180 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:59:08 ]
変数じゃなくて、変数の「場所」を渡してる
memsetはその「場所」をみてそこをsizeof(test)バイト分0で埋めてる

181 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 22:15:59 ]
>>171
まあ、でも、そこまで難しいものでもないし。

182 名前:169 [2008/12/30(火) 22:20:36 ]
実際、sizeof(test)は何バイトになるのでしょうか?



183 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 22:22:30 ]
わかりません

184 名前:デフォルトの名無しさん [2008/12/30(火) 22:26:41 ]
>>182
testの型による。
testはどう宣言してるの?

185 名前:169 [2008/12/30(火) 22:40:44 ]
struct shiken_in test;

>>184
はい、このように宣言しております

186 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 22:47:17 ]
やべぇちょっと笑ってしまった

187 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 22:58:22 ]
structなんだからstruct shiken_in がなんなのか探せ



188 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:00:07 ]
そもそも shiken_in が分かったところで
アラインメントの設定が分からんとサイズは分からんだろ。

189 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:02:16 ]
>182
shiken_in のサイズになる。
具体的には環境による。

190 名前:169 [2008/12/30(火) 23:05:34 ]
sockaddr_in
すみません、正確にはこういう構造体です
中身はかいてません。sizeofしたら何バイトになるのかな?

191 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:06:45 ]
sizeof すればいいじゃん。

192 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:13:27 ]
だから構造体のメンバの内容とアライメントの2つの情報がないと誰にも答えられないんだってば。
そして理屈抜きでサイズだけ知りたいなら5行くらいのソースを書いてsizeofを見るのが一番早い。

193 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:27:35 ]
typedef struct DADADADADADADA
{
    char p[1024];
} CDDB;

CDDB cddb;

int main(void)
{
    return cddb;
}


194 名前:デフォルトの名無しさん [2008/12/30(火) 23:28:33 ]
printf("sizeof(struct sokaddr_in)=%d\n", sizeof(struct sockaddr_in));

195 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:36:16 ]
printf("%d\n", sizeof(printf));

196 名前:デフォルトの名無しさん [2008/12/31(水) 12:48:14 ]
>>140
言語が標準GCを備えることと、GCが言語の使用と不可分でシステムに組み込まれることとは別だろ。

「高性能なハード」とやらの場合には、GCを組み込んで
「高性能なハード」でない場合には、GCを組み込まず手動のメモリ管理を使用してシステムを構築すればいい。

C++はマルチパラダイム言語とやらを標榜するくらいだから、それくらい普通にするだろ。

それなのに何故標準GCを提供しないのか意味不明。
きっと言語設計者およびその取り巻きはバカなんだろうな。

197 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:55:47 ]
ということにしたいのですね



198 名前:デフォルトの名無しさん [2008/12/31(水) 12:58:24 ]
したいのではなく、事実なのです。

199 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:58:42 ]
>>196
高性能なハードでない場合には手動のメモリ管理を使用してってwwwwwwww
その辺が自動化できればGCを導入するのに必要な苦労がいないし、GCもいらないじゃんwwww
バカかこいつは

200 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:59:16 ]
ということにしたいのですね

201 名前:デフォルトの名無しさん [2008/12/31(水) 12:59:29 ]
>>199
お前は、先ず日本語を勉強しろ。

202 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:00:23 ]
>>196
GCの有無で言語仕様が大きく変わるんだよ。
GCが必要な人はGCを持つ言語を使えばいい。GCが不要な人はGCがない言語を使えばいい。


203 名前:デフォルトの名無しさん [2008/12/31(水) 13:04:28 ]
>>202
変わるのではなく、パラダイムが追加されればいいんだろ。
GCが必要な人はC++をGCを持つ言語として使えばいい。GCが不要な人はC++をGCがない言語として使えばいい。

C++はそういうことが得意な言語じゃないのか?

204 名前:デフォルトの名無しさん [2008/12/31(水) 13:05:56 ]
C++はgcがない言語

205 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 14:17:07 ]
>>203
パラダイムという言葉を使わずに、C++にGCを実装するのに必要なことは何か言ってごらん。


206 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 14:18:57 ]
ゲームキューブで議論するスレだったのか

207 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 14:21:44 ]
C++/CLI使えばいいじゃん



208 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 14:27:23 ]
>>203
一方C++はスマートポインタを実装した。

209 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 14:36:33 ]
一方STL野郎は独自のアルゴリズムを実装した

210 名前:デフォルトの名無しさん [2008/12/31(水) 15:00:21 ]
>>205
先ず、お前の勘違いを訂正する。
実装するのはC++にではなく、C++の処理系に対して。

C++の処理系にGCを実装するのに必要なことは
GCの設計/コーディング/デバグ

それ以前に、C++の言語仕様にGCの仕様を追加する必要がある。

211 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 15:07:23 ]
お手軽に付け外しができる機能とでも思ってるのか

212 名前:デフォルトの名無しさん [2008/12/31(水) 15:09:38 ]
日本語でおk

213 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 15:28:19 ]
お前らがグダグダ何と言おうが、既に将来の規格改定でGC導入は間違いない路線。
残念ながらC++0xには間に合わなさそうだけど。

現状こんな感じ。
ttp://d.hatena.ne.jp/faith_and_brave/20081117/1226913980

214 名前:205 mailto:sage [2008/12/31(水) 15:36:48 ]
>>210
よし、訂正された。
つづきをどーぞ


215 名前:デフォルトの名無しさん [2008/12/31(水) 15:39:09 ]
>>214
何の続き?

216 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 16:52:51 ]
C++0x

217 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:19:59 ]
素晴らしいオセロゲームを作りたいんですが・・・

作れるようになるまでに、どれくらいかかるんでしょうか?



218 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:24:45 ]
自分が出来を素晴らしいと思えるようになるまで。

219 名前:デフォルトの名無しさん [2008/12/31(水) 17:32:14 ]
3ヶ月くらい

220 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:37:55 ]
>>217
>>23の言う補間機能を使うといいよ

221 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:48:14 ]
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

222 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:49:40 ]
>>217
素晴らしいの意味によるし、経験にも依るでしょ。
強いという意味なら自分で考えるならそれなりに解析が必要。
見栄えという意味ならお絵描き/画像作りが必要。

223 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:03:39 ]
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

224 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:18:45 ]
>>223
わざわざ答えてもらってるのに失礼じゃないですか
そういうレスはやめてください


225 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:25:28 ]
>>224
いや、答えてないから。

226 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:30:49 ]
>>225
グダグダうるせーよwwwww

227 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:37:07 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。



228 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:38:11 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

229 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:55:27 ]
>>222
C言語を学ぶだけではなく、絵もうまくなる必要があるってことですね!

230 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:03:15 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

231 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:05:11 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

232 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:14:34 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

233 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:25:07 ]
>>223
期間 : 5か月くらい
前提 : 俺が作るとして

234 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:44:37 ]
>>219 >>233
thx

235 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:44:41 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

236 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 20:27:30 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

237 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:07:08 ]
なんか、新しいスレになってから荒れてるね



238 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:16:17 ]
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

239 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:17:12 ]
だめだ・・・僕にはプログラミングなんて・・無理かもしれない・・






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

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

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