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


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

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



1 名前:◆NUNUK382Dk mailto:sage [2007/12/27(木) 20:32:47 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.45【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1197090562/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

159 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:51:00 ]
pc11.2ch.net/test/read.cgi/tech/1197132472/659

このプログラムが先日まで実行できたのですが、
probably corrupted stack
segmentation fault

と出て実行不可になりました。こちらの環境が原因でしょうか?

160 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:19:23 ]
プログラムがおかしい。

161 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:54:26 ]
>>156
type_traitsのどこがやばいの?traitsの考え方は難しくないし
コンパイル時の型の判定は便利だからboost使っている。
今でもiterator_traitsやchar_traitsはある。

>可読性が低い==俺は勉強してないので読めない
就職したら正論が通用しない場合があることがわかるよ。

162 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:54:58 ]
>>159
とりあえず、 ,とか?とか使うのやめて読みやすく書き直して味噌

163 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 12:57:50 ]
>>159
負数または INT_MAX を超える値を入力してない?

164 名前:159 mailto:sage [2008/01/02(水) 13:05:17 ]
実行時のコマンドが誤ってました。お騒がせしてサーセン

165 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:05:56 ]
>>159
宿題丸投げした挙句デバッグも人任せ?お前の肩の上についている物体は飾りか

166 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:22:34 ]
>>165
なんでそんなムキになるん?

167 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:23:46 ]
ムキっていうかうざくなるのは当然

こんなんみりゃ誰だってうざくなるわ



168 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:12 ]
>>165
肩の上って…
首を傾げてるってことかあぁぁ!!!!!!111

169 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:51 ]
こういうのは真性だからねぇ、わざわざ言わずにスルーだな

170 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:24:52 ]
まあ根っこからこういう奴っているんだよな、治らないよ、小さい時の教育の問題だろう

171 名前:165 mailto:sage [2008/01/02(水) 13:29:09 ]
ゴメン言い過ぎた。
今度から気をつけるよ。


172 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:31:29 ]
こういうのを見て毎回思うことは、
宿題スレと質問スレの住人、絶対かぶってるよな

173 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 13:45:12 ]
うん

174 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:26:46 ]
誰も>>159のプログラムが間違ってることは指摘してやらないんだなw

175 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:36:16 ]
strcatのcatって何の略ですか?

176 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:38:05 ]
>>175
ja.wikipedia.org/wiki/Strcat

177 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:41:47 ]
GoogleでもYahooでもどこでもいいから、検索して最初の10ページくらいは見て欲しいな
そもそも検索したかどうか知らないけど



178 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 14:45:36 ]
どうでもいいが、>>176のバッファオーバーラン対策コードはsを初期化しているかが曖昧だから不完全だ。strlen(s)がsizeof(s)を超える場合がある。


と思った。

179 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:07:02 ]
初期化されてなかったら、それはバッファオーバーランとは別問題だろ
strcpyとかならまだしも、catは連結なんだから初期化前提

180 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:10:55 ]
中途半端に"〜.ex"とかになった場合に誤動作しそうで怖いな
また別の問題だけど

181 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:10:17 ]
C++でなにか簡単に動くプログラムはないだろうか。

182 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:12:22 ]
はろーわーるど

183 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:50:40 ]
マージャン、囲碁、将棋、チェス、好きなのを選べ。

184 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:51:46 ]
はっきり言ってboostより分かりやすいC++はないんだろうか。

185 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:45:24 ]
boost分からなければ無理に使うことは無い

186 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:53:09 ]
boostってそんなにわかり易かったかな?
lambdaとか。

187 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:57:51 ]
lambda はともかく、半分以上は分かりやすいと思うが。



188 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:59:41 ]
boost::spiritは必見

189 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:35:49 ]
とりあえず使い方を覚えて便利さを享受すること
にしてる。中身は天才達が作ってるだろうから。
for_eachでのlambdaは秀逸だと思う。bindも
凄く使いやすい。

190 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:06:23 ]
便利だけど特別分かりやすいとは思わなかったな

191 名前:デフォルトの名無しさん [2008/01/03(木) 02:28:18 ]
#include <fstream>
using namespace std;

int main()
{
ofstream fout("mydata.mid", ios::binary);

fout.write("4D 54 68 64 00 00 00 06 00 01 00 01 00 60 4D 54 72 6B 00 00 00 1C 00 90 3C 64 4B 80 3C 64 15 90 3E 64 4B 80 3E 64 15 90 40 64 4B 80 40 64 15 FF 2F 00", 74);

fout.close();

return 0;

}



fout.write の引数のバイナリ(SMF)をそのままファイルに出力したいのですが、
出力されたsample.midを再生しようとすると「プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。」
というエラーが出てしまいます。そのファイルをバイナリエディタで見てみると、34 44 20 ...
というように、バイナリが変わってしまっていました。何がいけないのでしょうか??

192 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 02:33:16 ]
16進の文字列から数値に変換→書き込み
でおk

193 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 02:45:32 ]
>>191
static const char data[] = {0x4D, 0x54, 0x68, /*中略*/, 0x00, };
fout.write( data, sizeof(data) );

194 名前:デフォルトの名無しさん [2008/01/03(木) 02:58:56 ]
これからは開発文字コード体系を
UTF−16ベースにしないと
プログラマーから嫌われそうだ


195 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 03:18:40 ]
>>192
>>193

なるほど。こうすればよかったんですね。ありがとうございますm(_ _)m

・・なんか、いきなりあれですが。
今まで他の質問サイトでよく質問してたんですが、ここの方が返信早いし、
しかもここの人たちはポイントもらうためとかではなく無償で教えてくれるんですよね。。
なんかしんみり嬉しくなりました。また行き詰ったらご教授願いたいのでよろしくお願いしますm(_ _)m

196 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 07:12:59 ]
www.google.co.jp/search?q=%E3%81%94%E6%95%99%E6%8E%88

197 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 14:59:39 ]
>>193
なんで、staticなんですか?



198 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:04:30 ]
>>197
よそから使う必要がなければ、見えなくするためじゃないか。


199 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:09:46 ]
>>197
定数にするためじゃない?

200 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:16:31 ]
>>198
いえ、なんてーか、グローバル変数でstaticなら、それも理解できるんですが……
これ、関数内の話ですよね?

>>199
それって、constじゃないんですか?

201 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:35:24 ]
>>200
constだけだと関数内では「書き換え不能」って意味だけじゃないかな?
staticがついて定数になったと思うけど。



組み込みなんかだと値をROMに収めるためにはstatic constを指定してやらないと駄目だったような・・・
C++が使える組み込みなんて少ないかもしれないけど

202 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:36:40 ]
んーとねstaticはスタック上に領域確保するのを防ぐ狙いがあったよーな
確保した領域に値をコピーする手間が省けるのでメモリと処理時間の節約になるっぽい
スコープが関数内に限られた外部変数って考えるといいっしょ
でもmain関数内の変数ってコンパイラにもよると思うけど実質staticじゃなかったっけ?

203 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:07:50 ]
私の理解が間違っているかもしれませんが……一応確認

int main()
{
    ofstream fout("mydata.mid", ios::binary);
    const char data[] = {0x4D, 0x54, 0x68, /*中略*/, 0x00, };
    fout.write( data, sizeof(data) );
    fout.close();

    otherFunction();

    return 0;
}

みたいな形で書いたとしたら、当然、otherFunctionから、dataにアクセスすることは出来なくなるわけですから、外部から使う必要云々の話ってのは成立しませんよね。
なので、>>201さんの言う事(前半)が理由なら、staticはいらないのではないでしょうか?

>>201(後半)と>>202の理由については初めて知りました。
よろしければ、参考文献などを教えていただけないでしょうか?
お願いいたします。

204 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:23:42 ]
>>203
書き換え不能の「変数」と「定数」の違いがある気がすると思って書いたんだけど。
そこまで詳しくないから間違ってるかも。

Googleで「c++ const 定数」あたりでぐぐれば?

205 名前:193 mailto:sage [2008/01/03(木) 16:27:08 ]
組み込み屋なので、こういう場合static const にしちゃうんだよな。
>>201>>202(最後の1行はよく知らないが)の言うとおりだよ。

非static 非const →書き換え可能でスタックに配置。関数に入るたびに、ROMからスタックへのコピーが発生する。
非static const →書き換え不能でスタックに配置。関数に入るたびに、ROMからスタックへのコピーが発生する。(処理系により異なるかも?)
static 非const→書き換え可能な静的領域に配置。プログラム開始時に一度だけ、ROMから静的領域へのコピーが発生する。
static const →書き換え不能でROMに配置。コピーは発生しない。

206 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:27:11 ]
>>203
staticが外部からアクセスできないんは文法上の話
メモリ上に変数の領域が確保されてるんやからアドレス渡せばアクセスできるんよ

207 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:40:08 ]
>>204-206
なるほど……色々と教えてくださってありがとうございます。
どうも、組み込み系の話が必要になってきそうですね。
そこら辺の文献でも読んでみます。ありがとうございました。



208 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:56:44 ]
このスレには滅多に書き込まないけど、ずっと読んでる。
ホントためになる話が多いよな。各人の知識経験に感嘆するぜ。

209 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:24:02 ]
初心者向けのCの本を一冊読み終わり、問題もだいたい解けるようになりました。
次に難し目の問題集を買って、それをクリアーしたらC++に移ろうと思います。

しかし、本を読んで理解して・・・の繰り返しでモチベーションが萎えて来ました。

僕は独学でパズル感覚でプログラミングの勉強をしているので
CあるいはC++を使ったら何が出来るのかということが、ちょっと想像がつきません。

そこで

■ この言語で何(どういうモノ)が作れて、
  現実にはどういう場で役に立っているのかというのを教えていただきたいと思います。

よろしくお願いします。

210 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:35:47 ]
C/C++は汎用性高すぎて組み込みからサーバ、GUIアプリケーションまで色々としか‥‥

とりあえず「こんなソフト欲しい」って思ったら自作してみるといいお

211 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:37:29 ]
>>209
何ができるのかというと、何でもできるということになる。
目標がC/C++の勉強だけだと気力も萎えるだろう。そういう時は、何でも良いからアプリを作るのが一番。

212 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:41:50 ]
ここで言ってる組み込みって
www.sophia-it.com/content/%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
ここに書かれているような意味でですか?

汎用性高いとのことですが家電製品とかのシステムもC/C++で書かれていたりするんですか?

213 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:43:39 ]
釣りな感じもするけどまぁいいか。

実用的なプログラミング言語だと、言語によってできることできないことにはほとんど差がない。
どちらかというと環境の差だったり環境が用意されているかの違いの方が大きい。
なので、コンピュータ上でできることはほぼ何でもできる、と言ってよい。
でも、これだとあまりうれしくない返答だよな。

どれだけ低レベルな処理が可能かというのについては多少差があるけど、C / C++ はその方面では強い。
具体的には、オペレーティングシステム(Windows とかね)や、組み込み系(電子機器の制御、マイコン等)の
プログラミングに使われたりもする。
逆に言うと C / C++ そのままだと基礎的すぎて、ライブラリとか使わないと凝ったこと、派手なことはさせにくかったりする。

ということで、提案としては、
・OpenGL, DirectX とか使って、ゲームとか 3D CG 系で遊んでみる。
・(英語があまり苦にならなければ) online-judge.uva.es/problemset/ で問題を解いてみる。
(ACM国際大学対抗プログラミングコンテストの問題集でオンラインで判定もしてくれる)
あたりかなぁ。あるいは宿題スレの回答者になってみてもいいかもしれないよ?

214 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:44:18 ]
>>209
本を読んで理解することは非常に重要だが、実際に組んで動かしてみるのはもっと重要。
理解を深める意味でも、モチベーションの意味でもな。

あと、言語だけでなく、データ構造とアルゴリズムの勉強は欠かさないように。
パズル感覚なら楽しめるはず。実践の題材を見つけることもできると思う。
題材はGUIアプリで見た目にこだわるより、
CUIでいいから、内部動作にこだわると良い。

215 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:47:48 ]
>>212
C++が使える環境ではC++で書きたいな。(あくまで希望)

216 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:48:10 ]
言語を覚えたからどうこうというのがそもそもおかしい
何か目的があって言語を覚えたんじゃないのか

217 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:48:14 ]
Gotwを見るとか



218 名前:デフォルトの名無しさん [2008/01/03(木) 18:29:23 ]
CSVファイルから各行を読み込んでベクターに入れ、それをさらに大きなベクターに
いれる処理は以下でよいですか?
なんか、strtok()を使うやり方があるとか、','を'\0'に置換したらいいとか言われましたが、
よく分からなかったので、以下のように書いてみました。


vector<string> vec;
vector< vector<string> > vec2;
ifstream ifs("ファイル名文字列");
string line;
while (ifs >> line) {
int s1 = 0;
int s2 = 0;
while (s2 < line.size()) {
s1 = s2;
while (line[s2] != ',' && s2 < line.size()) s2++;
vec.push_back( line.substr(s1, s2 - s1) );
s2++;
}
vec2.push_back(v);
vec.clear();
}

219 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:45:48 ]
>>210
>>211
ありがとうございます。

アプリを作る方向で考えてみます!

>>213
ありがとうございます。
英語は、雰囲気でわかりますw
実践的な問題を解いてみるのは、楽しいと思います。
頑張ります。

>>214
ありがとうございます。
データ構造やアルゴリズムは、読んでて楽しいのでどんどん勉強したいと思います!

>>216
いや、暇つぶしです。
今、フリーター〜無職なんで、何かやってるアピールを親にしないと・・・
哲学とか、医療問題とか、どうでもいいものをいろいろ勉強してました。
昔、ウェブサイト作ってFLASHのACTION SCRIPTやJAVA SCRIPTとかをいじるのが好きだったんで
全く違うけどパソコン関連ってことでCをやってみたら楽しかった・・・って感じです。






220 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:47:01 ]
>>217
何やらヒゲのおじさんが微笑んでますが
参考になりそうなサイトですね。読んでみます。
ありがとうございます。

221 名前:デフォルトの名無しさん [2008/01/03(木) 20:03:21 ]
質問させてください。
当方、すでに出来上がっているプログラムに追加・改変して別のプログラムを作るという授業を受けている学生です。
VisualStudio2005、C++で開発しています。
ちなみに、授業を受けている割にはC++についての知識は皆無です。

今作っているのはノベルゲームのような物です。
文章を表示して、キーを入力すると次の文章を出力する、という動作を行いたいのですが、キーの入力を受け取ると、文章が一気に進んでしまいます。
これを防止する為にキーが入力されても一定時間無視するという処理を行いたいのです。

そこで皆様にお聞きしたいのですが、キーの入力(OnKeyDownで取得)を一定時間(例えば10ミリ秒)無視するためにはどのようにプログラミングすれば良いのでしょうか?

わかりにくいかと思いますが、どうかよろしくお願いします。

222 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:15:46 ]
>>221
フラグ立てればいい

223 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:16:25 ]
if( 一定時間 != true )
{
キー入力;
}

224 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:17:33 ]
そもそも一気に進んでしまうのがおかしいのでは

225 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:19:32 ]
何をクラスにしたらいいのかの指針をください

226 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:21:02 ]
何をしたいのか書かないとエスパーじゃなきゃ無理w

227 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:38:21 ]
>>225
類似オブジェクトの共通特性を抽出してクラスにすればいい



228 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:43:50 ]
「押されているかどうか」ではなく、「押された瞬間」を検知すれば、そういうことは無くなる。
>222も参考に、その方向考えてみたらどうかな。





229 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:51:25 ]
>ちなみに、授業を受けている割にはC++についての知識は皆無です。

ここに誰もつっこまないのは何故だ・・・
教えようがないじゃん

論述形式の宿題とか?

230 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 20:54:33 ]
>>229
そういうもんじゃない?
情報学科卒の生徒にHelloWorldから、とまでは言わなくても、
それに類する所から始めないといけない現実。

231 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 21:57:16 ]
すでに出来上がっているプログラムって吉里吉里みたいな仕様になっているのか?
なんかよくわからんけどソースうpしてくれなきゃわからん

232 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 21:59:30 ]
今日はものすごく調子が悪くてとても
C言語について調べる気がしないんですが。
誰かレスお願いします。

233 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:01:06 ]
>>232
お前はなんについて質問したんだよw

234 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:04:47 ]
www.imgup.org/iup531850.jpg

235 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:12:54 ]
>>233
何かを限られた時間で作るときの目標として
ゲームにこだわる必要はないんですかね。


236 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:19:07 ]
>>235
どこから「ゲーム」が出てきたんだ?
エスパーで答えれば
好きにしろ、人に聞くな、目標を立てるところからが勉強だ。

237 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:20:24 ]
人生相談スレではありません。



238 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:22:57 ]
ゲームといえば、ライフゲームとスタートレックかな。


239 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:21:54 ]
>>212

>家電製品とかのシステムもC/C++で書かれていたりするんですか?

Cがほとんどだと思う。
ある程度メモリとCPUパワーに余裕があれば、C++も選択肢になるだろうな。


240 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:36:44 ]
組み込みはC++が多い

241 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:56:36 ]
組み込みC++ってそんな贅沢させてくれるのか?

Cがほとんどじゃまいか?

242 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:02:54 ]
今は組み込みも(全体的に)だいぶ性能上がってるんじゃないか

243 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:09:06 ]
コンパイラさえ対応していれば使うよ。
コストなんてどちらにせよコード次第。

244 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:28:37 ]
組み込みは一回しか経験したことないけど、一応C++だったな
でもnewを使わなかったし、ベターCって使い方だったけど・・・

245 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:31:15 ]
組み込み全く知らんのだけど、newを使わない事による組み込み的なメリットって何かあるのかね?

246 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:33:44 ]
例外処理省いてバイナリをコンパクトに出来るとかそのあたりかね
newは例外投げるし。

247 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:34:11 ]
性能は大分上がってるけど、16bit環境も珍しくないからな。
8bitは流石に見なくなったが。(やってるところもあるだろうが。)

C++でやるかどうかは、コストよりも政治的な要素が強い希ガス。
MDAツールが使える、といった明確なメリットがなければ、
Cで押し切られそうだな。





248 名前:212 mailto:sage [2008/01/04(金) 00:43:39 ]
むーそうだったのですか。
ハードウェア言語?とかいうのを使っているのだと思ってました。
ありがとうございますm(_ _)m

249 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:52:48 ]
>>245
メモリが少ないのでヒープが小さくなる。その結果newに失敗する可能性があるとか
リアルタイムが要求される場合に遅いとか?


250 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:59:08 ]
>>245
普通のnew/deleteは、空き領域の断片化によってメモリ不足に陥る可能性がある。
例外はコンパイルオプションいじらないと普通は投げないんじゃないかな。

代替策として、静的確保した領域にplacement newしたり、
断片化しないように制限を付けたメモリ管理を取り入れたりと、工夫してる。

251 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 01:06:50 ]
携帯電話みたいにOSが入ってる環境ならnew(mallocも)とか使うだろうけど
IOから自分で実装するような組み込みならまず使わないと思うよ。
環境によっちゃRAMやスタックの使用量を監視しながらデバッグすることだってあるし。

252 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 02:10:51 ]
C++で組み込みっつったらBREWとかしか思いうかばんなぁ

253 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 02:31:05 ]
>>252

組込みのソフトが何で開発されたか、なんて普通表に出てこないから。
詳しくは言えないが、おまいらの目に触れるところで
C++(全部ではないが)使って作られたもの知ってるよ。


254 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 05:42:17 ]
日立(ルネサス)のはC++コンパイラだったな

255 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 10:49:14 ]
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 132
pc11.2ch.net/test/read.cgi/tech/1190261457/
からの誘導で来ました。

===========

仕様:
1. UNIXのcronみたいに特定の時間になるとある処理を実行させる
2. そのプログラム自体はdaemonとしてずっと走り続けている

こういうことをLinux上でやりたいんですが、
sleepかalertを使って、
希望の時間になったかを調べ続けるしかないですかね。
何か普通はこうやるよってのあります?

1分に1回温度を測定するプログラムです。

256 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 11:15:11 ]
現在の時刻を取ってきて、Sleepで寝かせる時間を計算すれば良いんじゃないかな。

257 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 11:18:46 ]
>>255
cron使うわけにはいかないの?
どうしてもプログラム内で完結したいなら、alarm()かsetitimer()だろうね。sleep()でもできなくはないけど。
残念ながら、alert()なんてのは知らん。



258 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 11:19:15 ]
>>256
Sleepってなんですか?

259 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 11:35:19 ]
>>256-257
レスありがとうございます。
やっぱりそうなりますか。
alertじゃなくてalarmでした。






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

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

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