必要な関数を作成しましょう C言語編
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGなるべく要望を簡潔におねがいします。
0002デフォルトの名無しさん
NGNGC言語なら俺に聞け! Part 97
http://pc5.2ch.net/test/read.cgi/tech/1102749965/
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGC++を使え。STLを使え。Boostを使え。
0005(;д;)○ぽんぽんぽんぽぽぽぽんぽんぽん ◆1xsES22i66
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGwhile(*a++=*b++);
}
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG知ってるだけじゃダメだけどな。
技術屋にとって知識は金にはならない。
0010デフォルトの名無しさん
NGNGどうして?
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGよって >>9 は糞。
0015デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGというわけで、>>1.CでSTLみたいなの作れ。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG抽象度高すぎ。もう少し具象化しる。
0021デフォルトの名無しさん
NGNGstruct {
PIterator Next(PIterator); //operator ++();
PIterator Prev(PIterator); //operator --();
} VirtualFunctionTable;
typedef {
void *p;
struct VirtualFunctionTable *pvft;
} Iterator, PIterator;
0022デフォルトの名無しさん
NGNG恥ずかしいから説明せんでもよい。
割り込みベクタとかでとっくの昔に確立された手法。
0023デフォルトの名無しさん
NGNGナニ言語だよ
>>22
恥ずかしいのはお前の頭だ
0024デフォルトの名無しさん
NGNG話の流れからC99だろ。
0025デフォルトの名無しさん
05/01/24 01:56:30「キー連打」と「一定時間以上キー押しっぱなし」
を区別したいのですが、どうすればよいでしょうか?
kbhit()とgetch()を使ってキー入力を判断しているのですが、
私には今のところ、区別できません。
だれか教えてください。
よろしくお願いします。
0026デフォルトの名無しさん
05/02/15 04:03:36(´・ω・`)知らんもんは知らんがな
0027デフォルトの名無しさん
05/02/15 06:15:16それってCじゃなくてAPIとかでやるべき問題じゃないの?
とりあえずキー入力時にタイムスタンプとっておいて
次回の入力時のと比較してみたらどうか。
0028デフォルトの名無しさん
05/02/19 22:11:07つぅか今時DOSプログラムですか?
unixには無かったと何気なく記憶。kbhit
0029デフォルトの名無しさん
05/03/01 14:42:27{
while(1){
printf("ちんこ");
}
}
0030デフォルトの名無しさん
05/03/11 23:16:45「不要な関数は作成してはいけません」ってことだよな。
0031デフォルトの名無しさん
05/03/13 11:10:05それ対偶。算数勉強し直せ。
0032デフォルトの名無しさん
05/03/15 04:01:190033デフォルトの名無しさん
2005/03/21(月) 13:21:51あと国語も勉強しとけ。
>>1 を見て尚、このスレタイを「呼びかけ」ととったのか?
0034デフォルトの名無しさん
2005/04/13(水) 23:52:44けど、とにかく高速に処理をしたいと思っています。
何か良い方法はありますか?
とりあえず、今は・・・
1.先頭のアドレスが4の倍数になるまで1バイトずつゼロクリア。
ゼロクリアの確認はゼロクリアした領域をORして0になっているか確認。
2.先頭アドレスが4の倍数になったら4バイトずつゼロクリア。確認方法は上と同じ。
3.残りの端数をゼロクリア
なお2の処理が一番のメインになるのだが、ループしてゼロクリアする際にループの中で処理を展開することで
ループ回数を減らしている。
例)10000回のループであった場合、1回のループでクリア処理を10回行い、ループ回数を1000回にする・・・など
一応この方法で300KBのバッファを
昔(普通にループしてクリア)712ms
今(上の処理を利用してクリア)92ms
でした。
さらに早くはなるでしょうか?
0035デフォルトの名無しさん
2005/04/24(日) 13:39:29組み込み系?
0036デフォルトの名無しさん
2005/04/24(日) 13:40:33キャッシュ効く領域なら無意味
0037デフォルトの名無しさん
2005/04/24(日) 13:43:330038デフォルトの名無しさん
2005/04/25(月) 22:44:49対偶じゃなくて裏じゃね?
0039デフォルトの名無しさん
2005/05/01(日) 23:45:26A ならば B の待遇は、B でないなら A でない
「必要な関数を作成する」の待遇は
「作成しない、ならば不要な関数(必要な関数じゃない)」だと思うが。
0040デフォルトの名無しさん
2005/05/02(月) 04:00:00タイマーで数秒後にウェイクアップするようにすればおっけー
0041デフォルトの名無しさん
2005/05/02(月) 04:05:26「必要な関数ならば作成する」ならできるけどな
0042デフォルトの名無しさん
2005/05/03(火) 10:14:27なんか全体的に意味不明な文章にしか思えないけど。。
書いてあるアルゴリズムも意味不明なら、結局何を目的として何がしたいのかも意味不明。
そもそもターゲットの環境が不明。
こういう説明能力が著しく欠如してる人は技術屋やっちゃダメだろ。
0043デフォルトの名無しさん
2005/05/05(木) 10:17:41こう言う事?
1バイトのクリアに掛かるコストをx、総バイト数をa、1ループに行うクリア回数をn
1ループに要するコストをyとしたときに、総コストは
xa + ay/nになるので、nが最大(n=a)の時、つまりループせずに307200回同じ処理を書けば最速だよ。
計算するまでもないけど。
0044デフォルトの名無しさん
2005/05/06(金) 18:33:21XOR A
LD A,$0H
CP 0H
とかやればかなり速いのでは?
チェックでソフトウェア割り込みを使って、割り込みが一回でもかからなかったらクリア完了
0045デフォルトの名無しさん
2005/05/08(日) 06:55:130046デフォルトの名無しさん
2005/10/23(日) 23:29:230047デフォルトの名無しさん
2005/10/23(日) 23:47:17しまった…
>>40
> 一旦電源切ればかなり高速に何GBでも何TBでもクリアできるのでは?
駄目。
D-RAM / S-RAM 共に電源投入時の値は不定。
0048デフォルトの名無しさん
2005/10/24(月) 00:53:55コンパイラが吐き出すアセンブラコードなども元に色々やってます。
ちなみにコンパイラはSHCのver9です。
0049デフォルトの名無しさん
2005/10/24(月) 06:57:09C++じゃないやつお願いします
0050デフォルトの名無しさん
2005/10/24(月) 07:50:480051デフォルトの名無しさん
2005/10/25(火) 20:55:20int i;
for(i=0;i<count;i++){
printf("ぬるぽ");
}
}
0052デフォルトの名無しさん
2005/10/27(木) 18:27:59ミ ∠_)
./
/_∧
/,,・∀・)
// と ) | | ガッ
Y /ノ 人 ガッ
て / ) < >__Λ ガッ
_/し' //.V;´Д`)
(_フ彡 / ヽ ←>>51
0053デフォルトの名無しさん
2005/11/05(土) 08:47:22お勧めのがあったら教えてください。
0054デフォルトの名無しさん
2005/11/05(土) 09:01:20■ このスレッドは過去ログ倉庫に格納されています