スレを勃てるまでもないC/C++の質問はここで 5
■ このスレッドは過去ログ倉庫に格納されています
過去ログ
スレを勃てるまでもないC/C++の質問はここで
http://pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
http://pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
http://pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
http://pc11.2ch.net/test/read.cgi/tech/1221633708/
0140デフォルトの名無しさん
2008/12/30(火) 17:11:30組み込みとか
組み込みシステム - Wikipedia
具体例
家庭用電気機械器具
炊飯器、洗濯機、エアコンディショナー
デジタルカメラ
テレビ、ビデオデッキなどAV機器
ゲーム機、携帯電話などのデジタル家電
エレベーター
信号機
複写機
自動販売機
パチンコ機、パチスロ機、スロットマシン
0141デフォルトの名無しさん
2008/12/30(火) 17:13:54C++でコーディングするときも常にshared_ptrを使えばいいんだよ。
>>127の「newしたら必ずdeleteすること」を次のように言い換える。
new→newしてshared_ptrの構築
delete→reset()
128の問題は無くなるし、循環参照もnew-deleteで(手動でやれば)問題にならないならば、
shared_ptrでも手動でやれば問題ないはず。
性能とか組込とか知らんがなという前提で。
0142デフォルトの名無しさん
2008/12/30(火) 17:18:21さらに、ガベージコレクションの動作タイミングの予測やCPUの占有時間の事前予測などが困難なことから、デッドラインが決められてるリアルタイムシステムには向いていない。
ガベージコレクション - Wikipedia
http://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
0143デフォルトの名無しさん
2008/12/30(火) 17:19:32昔のCPUがしょぼしょぼの時の話しで今ではそれほど気にしなくていい?
たまに数行づつで関数に分けてる人いるけどそのぐらいまでやっちゃっていいの?
0144デフォルトの名無しさん
2008/12/30(火) 17:22:38程度によるが、最新のコンパイラを使っていれば差はたいしてでない。
分割したりオブジェクト指向にすることは、管理が楽になるという利点がある。
0145デフォルトの名無しさん
2008/12/30(火) 17:25:21なるべく再帰呼び出しは使わない方が良い。
0146デフォルトの名無しさん
2008/12/30(火) 17:26:55実行性能が許容できないくらい悪くて、その原因が本当に
関数呼び出しのコストだと分かった時点で初めて
そういう小手先の手段に出るものだ
そんな関数の分け方くらいではまず間違いなく性能に何の影響もないと思うが
0147デフォルトの名無しさん
2008/12/30(火) 17:27:36数行とか一行の関数を書くとか普通だから。
0148デフォルトの名無しさん
2008/12/30(火) 17:29:27おまえは常に「覚えておいて」プログラム組んでろカス
0149デフォルトの名無しさん
2008/12/30(火) 17:30:33意味が分からない。
「末尾再帰だったら、再帰でもいい」とかだったら意味が通じるけど。
(再帰だって、速度に問題なかったらふつーに使うわな。あたりまえだけど)
0150デフォルトの名無しさん
2008/12/30(火) 17:31:250151デフォルトの名無しさん
2008/12/30(火) 17:35:07するのだが、ほとんど差が出ないという経験から関数として\を使うマクロは使わないことにしている。
0152デフォルトの名無しさん
2008/12/30(火) 17:39:09これからはガンガン分けていくことにします
0153デフォルトの名無しさん
2008/12/30(火) 17:44:460154デフォルトの名無しさん
2008/12/30(火) 17:47:08数行の関数を作ってもOKだし推奨
関数の呼び出しのコストが問題になるのはループ内とかとにかく繰り返し多数呼び出される場合だね。そういう場合はinlineを使う。
仮想関数は少し重めだからループ内では要注意
最近のコンパイラはinlineの指定をしなくても勝手に判断してインライン展開をしてくれるから気にしないでいい。
0155デフォルトの名無しさん
2008/12/30(火) 17:52:21ああ文字列の操作領域だろ
確か3Kバイトが標準で一杯になったらGCを走らせる
8ビットならではの世界だった
N88BASIC(86)はもう少し広いだろうが
0156デフォルトの名無しさん
2008/12/30(火) 18:01:550157デフォルトの名無しさん
2008/12/30(火) 18:11:57BASICで文字列を頻繁に操作していると時々止まった
その謎が解けるまで(つまりはGCだという事を知るまで)時間がかかった
0158デフォルトの名無しさん
2008/12/30(火) 18:29:05何の騒ぎかわからんかったよ
0159デフォルトの名無しさん
2008/12/30(火) 18:31:28ゲーム関連板ならゲームキューブのことだろうけど
ここはプログラム板だぞw ガベージコレクションに決まっておろう
0160デフォルトの名無しさん
2008/12/30(火) 19:07:49C言語ってだめなの??
0161デフォルトの名無しさん
2008/12/30(火) 19:09:130162デフォルトの名無しさん
2008/12/30(火) 19:25:300163デフォルトの名無しさん
2008/12/30(火) 19:26:540164デフォルトの名無しさん
2008/12/30(火) 19:28:130165デフォルトの名無しさん
2008/12/30(火) 19:29:05いまや全くの別物のくせに、そういう偏見が間違っているとも言えない微妙な関係。
0166デフォルトの名無しさん
2008/12/30(火) 19:37:270167デフォルトの名無しさん
2008/12/30(火) 20:50:040168デフォルトの名無しさん
2008/12/30(火) 20:52:27他のスマートポインタも使い方憶えればいいんじゃない?
0169デフォルトの名無しさん
2008/12/30(火) 20:55:54memset(&test,0,sizeof(test));
このような文があるのですが、
&testがさす意味はなんなのでしょうか?
&がつく意味がよくわからないのです
0170デフォルトの名無しさん
2008/12/30(火) 20:58:520171デフォルトの名無しさん
2008/12/30(火) 21:02:39覚えたとしても、それらを使い間違わないようにビクビクしながら使うよりは、
単純にshared_ptr使った方が、バグが少ない堅いコーディングができると思うけど。
0172デフォルトの名無しさん
2008/12/30(火) 21:07:19ポインタの宣言がなくてもアドレスは使用可なのでしょうか
ていうか、子の場合アドレスで指定する意味はなんでしょうか?
0173デフォルトの名無しさん
2008/12/30(火) 21:10:390174デフォルトの名無しさん
2008/12/30(火) 21:30:520175デフォルトの名無しさん
2008/12/30(火) 21:38:000176デフォルトの名無しさん
2008/12/30(火) 21:43:01自ら使うのはshared_ptrだけでもいい。次期標準にも入る。
入るおかげで、C++0xでは、標準に入っていないのは無視してOKと言えるようになるんだが。
例えば、>>105で挙げられているintrusive_ptrは知っていても大多数が使ったことないだろう(俺もだ)。
scoped_ptrはauto_ptrとまとめてunique_ptrになる。
#びくびくせず自信を持って使えるならweak_ptrも使ってほしい。
0177169
2008/12/30(火) 21:51:30まず、構造体を宣言して
sizeof(test)でなにをかえすんだろうか
testの中身は宣言だけしてるだけで、実際何もはいってない?いや、0ならはいってるのかな
で、memsetでそのtestのアドレスの先頭からだけど、testのアドレスの中身じゃなくて、アドレスの
先頭から0で埋めるとかおかしくないのかな。アドレスであってアドレスが差す値じゃないから。
0178デフォルトの名無しさん
2008/12/30(火) 21:57:220179デフォルトの名無しさん
2008/12/30(火) 21:57:33memsetにはアドレスを渡すけど、
memsetが0で埋めるのは、アドレスが差す値。
0180デフォルトの名無しさん
2008/12/30(火) 21:59:08memsetはその「場所」をみてそこをsizeof(test)バイト分0で埋めてる
0181デフォルトの名無しさん
2008/12/30(火) 22:15:59まあ、でも、そこまで難しいものでもないし。
0182169
2008/12/30(火) 22:20:360183デフォルトの名無しさん
2008/12/30(火) 22:22:300184デフォルトの名無しさん
2008/12/30(火) 22:26:41testの型による。
testはどう宣言してるの?
0185169
2008/12/30(火) 22:40:44>>184
はい、このように宣言しております
0186デフォルトの名無しさん
2008/12/30(火) 22:47:170187デフォルトの名無しさん
2008/12/30(火) 22:58:220188デフォルトの名無しさん
2008/12/30(火) 23:00:07アラインメントの設定が分からんとサイズは分からんだろ。
0189デフォルトの名無しさん
2008/12/30(火) 23:02:16shiken_in のサイズになる。
具体的には環境による。
0190169
2008/12/30(火) 23:05:34すみません、正確にはこういう構造体です
中身はかいてません。sizeofしたら何バイトになるのかな?
0191デフォルトの名無しさん
2008/12/30(火) 23:06:450192デフォルトの名無しさん
2008/12/30(火) 23:13:27そして理屈抜きでサイズだけ知りたいなら5行くらいのソースを書いてsizeofを見るのが一番早い。
0193デフォルトの名無しさん
2008/12/30(火) 23:27:35{
char p[1024];
} CDDB;
CDDB cddb;
int main(void)
{
return cddb;
}
0194デフォルトの名無しさん
2008/12/30(火) 23:28:330195デフォルトの名無しさん
2008/12/30(火) 23:36:160196デフォルトの名無しさん
2008/12/31(水) 12:48:14言語が標準GCを備えることと、GCが言語の使用と不可分でシステムに組み込まれることとは別だろ。
「高性能なハード」とやらの場合には、GCを組み込んで
「高性能なハード」でない場合には、GCを組み込まず手動のメモリ管理を使用してシステムを構築すればいい。
C++はマルチパラダイム言語とやらを標榜するくらいだから、それくらい普通にするだろ。
それなのに何故標準GCを提供しないのか意味不明。
きっと言語設計者およびその取り巻きはバカなんだろうな。
0197デフォルトの名無しさん
2008/12/31(水) 12:55:470198デフォルトの名無しさん
2008/12/31(水) 12:58:240199デフォルトの名無しさん
2008/12/31(水) 12:58:42高性能なハードでない場合には手動のメモリ管理を使用してってwwwwwwww
その辺が自動化できればGCを導入するのに必要な苦労がいないし、GCもいらないじゃんwwww
バカかこいつは
0200デフォルトの名無しさん
2008/12/31(水) 12:59:160201デフォルトの名無しさん
2008/12/31(水) 12:59:29お前は、先ず日本語を勉強しろ。
0202デフォルトの名無しさん
2008/12/31(水) 13:00:23GCの有無で言語仕様が大きく変わるんだよ。
GCが必要な人はGCを持つ言語を使えばいい。GCが不要な人はGCがない言語を使えばいい。
0203デフォルトの名無しさん
2008/12/31(水) 13:04:28変わるのではなく、パラダイムが追加されればいいんだろ。
GCが必要な人はC++をGCを持つ言語として使えばいい。GCが不要な人はC++をGCがない言語として使えばいい。
C++はそういうことが得意な言語じゃないのか?
0204デフォルトの名無しさん
2008/12/31(水) 13:05:560205デフォルトの名無しさん
2008/12/31(水) 14:17:07パラダイムという言葉を使わずに、C++にGCを実装するのに必要なことは何か言ってごらん。
0206デフォルトの名無しさん
2008/12/31(水) 14:18:570207デフォルトの名無しさん
2008/12/31(水) 14:21:440208デフォルトの名無しさん
2008/12/31(水) 14:27:23一方C++はスマートポインタを実装した。
0209デフォルトの名無しさん
2008/12/31(水) 14:36:330210デフォルトの名無しさん
2008/12/31(水) 15:00:21先ず、お前の勘違いを訂正する。
実装するのはC++にではなく、C++の処理系に対して。
C++の処理系にGCを実装するのに必要なことは
GCの設計/コーディング/デバグ
それ以前に、C++の言語仕様にGCの仕様を追加する必要がある。
0211デフォルトの名無しさん
2008/12/31(水) 15:07:230212デフォルトの名無しさん
2008/12/31(水) 15:09:380213デフォルトの名無しさん
2008/12/31(水) 15:28:19残念ながらC++0xには間に合わなさそうだけど。
現状こんな感じ。
ttp://d.hatena.ne.jp/faith_and_brave/20081117/1226913980
0215デフォルトの名無しさん
2008/12/31(水) 15:39:09何の続き?
0216デフォルトの名無しさん
2008/12/31(水) 16:52:510217デフォルトの名無しさん
2008/12/31(水) 17:19:59作れるようになるまでに、どれくらいかかるんでしょうか?
0218デフォルトの名無しさん
2008/12/31(水) 17:24:450219デフォルトの名無しさん
2008/12/31(水) 17:32:140220デフォルトの名無しさん
2008/12/31(水) 17:37:55>>23の言う補間機能を使うといいよ
0221デフォルトの名無しさん
2008/12/31(水) 17:48:14>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし
0222デフォルトの名無しさん
2008/12/31(水) 17:49:40素晴らしいの意味によるし、経験にも依るでしょ。
強いという意味なら自分で考えるならそれなりに解析が必要。
見栄えという意味ならお絵描き/画像作りが必要。
0223デフォルトの名無しさん
2008/12/31(水) 18:03:39お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0224デフォルトの名無しさん
2008/12/31(水) 18:18:45わざわざ答えてもらってるのに失礼じゃないですか
そういうレスはやめてください
0225デフォルトの名無しさん
2008/12/31(水) 18:25:28いや、答えてないから。
0226デフォルトの名無しさん
2008/12/31(水) 18:30:49グダグダうるせーよwwwww
0227デフォルトの名無しさん
2008/12/31(水) 18:37:07どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0228デフォルトの名無しさん
2008/12/31(水) 18:38:11どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0229デフォルトの名無しさん
2008/12/31(水) 18:55:27C言語を学ぶだけではなく、絵もうまくなる必要があるってことですね!
0230デフォルトの名無しさん
2008/12/31(水) 19:03:15どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0231デフォルトの名無しさん
2008/12/31(水) 19:05:11どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0232デフォルトの名無しさん
2008/12/31(水) 19:14:34どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0233デフォルトの名無しさん
2008/12/31(水) 19:25:07期間 : 5か月くらい
前提 : 俺が作るとして
0234デフォルトの名無しさん
2008/12/31(水) 19:44:37thx
0235デフォルトの名無しさん
2008/12/31(水) 19:44:41どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0236デフォルトの名無しさん
2008/12/31(水) 20:27:30どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0237デフォルトの名無しさん
2008/12/31(水) 23:07:080238デフォルトの名無しさん
2008/12/31(水) 23:16:17どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。
0239デフォルトの名無しさん
2009/01/01(木) 00:17:12■ このスレッドは過去ログ倉庫に格納されています