トップページ⇒tech
54コメント13KB

必要な関数を作成しましょう C言語編

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
欲しい関数を神が作るスレです。

なるべく要望を簡潔におねがいします。
0002デフォルトの名無しさんNGNG
こっちでやればいいじゃん。

C言語なら俺に聞け! Part 97
http://pc5.2ch.net/test/read.cgi/tech/1102749965/
0003デフォルトの名無しさんNGNG
このスレを削除する関数を作ってくれ
0004デフォルトの名無しさんNGNG
車輪の再発明をするな。
C++を使え。STLを使え。Boostを使え。
0005(;д;)○ぽんぽんぽんぽぽぽぽんぽんぽん ◆1xsES22i66 NGNG
結局フレームワークすら作れない>>4みたいなのが量産される。
0006デフォルトの名無しさんNGNG
糞コテをあぼーんする関数を作ってくれ
0007デフォルトの名無しさんNGNG
strcpy(char* a,char* b){
while(*a++=*b++);
}
0008デフォルトの名無しさんNGNG
結局基本的すぎるアンチパターンすら知らない>>5みたいなのが量産される
0009デフォルトの名無しさんNGNG
>>8
知ってるだけじゃダメだけどな。
技術屋にとって知識は金にはならない。
0010デフォルトの名無しさんNGNG
>9
どうして?
0011デフォルトの名無しさんNGNG
>>9とは仕事したくない
0012デフォルトの名無しさんNGNG
私は理論屋で食っているから関係ないな。>>9と気が合わなくても全然OK
0013デフォルトの名無しさんNGNG
9さんを怒涛の勢いで嫌っていくスレになりました。
0014デフォルトの名無しさんNGNG
知識は、使わないと意味が無い。
よって >>9 は糞。
0015デフォルトの名無しさんNGNG
知識は使わんでええ。頭に入れとけばいいんよ。
00169NGNG
>>14
その通りだよ。お前わかってんじゃん。
0017デフォルトの名無しさんNGNG
>>9はノウハウだけでプログラム書いてるデジタルどかちん.
0018デフォルトの名無しさんNGNG
車輪の再発明するなC++使えとか馬鹿じゃねーの。Cでっつってんだろうが
というわけで、>>1.CでSTLみたいなの作れ。
0019デフォルトの名無しさんNGNG
とりあえずvoid*でポリモーフィズムができるな。
0020デフォルトの名無しさんNGNG
>>19
抽象度高すぎ。もう少し具象化しる。
0021デフォルトの名無しさんNGNG
これぐらいならどう?
struct {
  PIterator Next(PIterator); //operator ++();
  PIterator Prev(PIterator); //operator --();
} VirtualFunctionTable;

typedef {
  void *p;
  struct VirtualFunctionTable *pvft;
} Iterator, PIterator;
0022デフォルトの名無しさんNGNG
>>21
恥ずかしいから説明せんでもよい。

割り込みベクタとかでとっくの昔に確立された手法。
0023デフォルトの名無しさんNGNG
>>21
ナニ言語だよ

>>22
恥ずかしいのはお前の頭だ
0024デフォルトの名無しさんNGNG
>>23
話の流れからC99だろ。
0025デフォルトの名無しさん05/01/24 01:56:30
キーボードから入力を受付けるときに、
「キー連打」と「一定時間以上キー押しっぱなし」
を区別したいのですが、どうすればよいでしょうか?

kbhit()とgetch()を使ってキー入力を判断しているのですが、
私には今のところ、区別できません。

だれか教えてください。
よろしくお願いします。
0026デフォルトの名無しさん05/02/15 04:03:36
>>25
(´・ω・`)知らんもんは知らんがな
0027デフォルトの名無しさん05/02/15 06:15:16
>>25
それってCじゃなくてAPIとかでやるべき問題じゃないの?
とりあえずキー入力時にタイムスタンプとっておいて
次回の入力時のと比較してみたらどうか。
0028デフォルトの名無しさん05/02/19 22:11:07
>>25
つぅか今時DOSプログラムですか?
unixには無かったと何気なく記憶。kbhit
0029デフォルトの名無しさん05/03/01 14:42:27
void chinko()
{

while(1){

printf("ちんこ");

}

}
0030デフォルトの名無しさん05/03/11 23:16:45
「必要な関数を作成しましょう」ってことは逆に言えば
「不要な関数は作成してはいけません」ってことだよな。
0031デフォルトの名無しさん05/03/13 11:10:05
>>30
それ対偶。算数勉強し直せ。
0032デフォルトの名無しさん05/03/15 04:01:19
「作成してはいけないのは不要な関数」でいいの?
0033デフォルトの名無しさん2005/03/21(月) 13:21:51
>>30
あと国語も勉強しとけ。
>>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:33
memsetでいいんじゃないの?
0038デフォルトの名無しさん2005/04/25(月) 22:44:49
>31
対偶じゃなくて裏じゃね?
0039デフォルトの名無しさん2005/05/01(日) 23:45:26
>>31
A ならば B の待遇は、B でないなら A でない

「必要な関数を作成する」の待遇は
「作成しない、ならば不要な関数(必要な関数じゃない)」だと思うが。
0040デフォルトの名無しさん2005/05/02(月) 04:00:00
一旦電源切ればかなり高速に何GBでも何TBでもクリアできるのでは?
タイマーで数秒後にウェイクアップするようにすればおっけー
0041デフォルトの名無しさん2005/05/02(月) 04:05:26
まあ、「必要な関数を作成する」だと対偶は取れないんだけどな
「必要な関数ならば作成する」ならできるけどな
0042デフォルトの名無しさん2005/05/03(火) 10:14:27
>>34
なんか全体的に意味不明な文章にしか思えないけど。。
書いてあるアルゴリズムも意味不明なら、結局何を目的として何がしたいのかも意味不明。
そもそもターゲットの環境が不明。

こういう説明能力が著しく欠如してる人は技術屋やっちゃダメだろ。
0043デフォルトの名無しさん2005/05/05(木) 10:17:41
>>34
こう言う事?
1バイトのクリアに掛かるコストをx、総バイト数をa、1ループに行うクリア回数をn
1ループに要するコストをyとしたときに、総コストは
xa + ay/nになるので、nが最大(n=a)の時、つまりループせずに307200回同じ処理を書けば最速だよ。

計算するまでもないけど。
0044デフォルトの名無しさん2005/05/06(金) 18:33:21
全メモリに独立してプロセッサを接続して、
XOR A
LD A,$0H
CP 0H
とかやればかなり速いのでは?
チェックでソフトウェア割り込みを使って、割り込みが一回でもかからなかったらクリア完了
0045デフォルトの名無しさん2005/05/08(日) 06:55:13
DMA転送すれば速い
0046デフォルトの名無しさん2005/10/23(日) 23:29:23
age
0047デフォルトの名無しさん2005/10/23(日) 23:47:17
半年前のおそレスだが、>>45 があげちまったのでたまたま目について
しまった…

>>40
> 一旦電源切ればかなり高速に何GBでも何TBでもクリアできるのでは?

駄目。
D-RAM / S-RAM 共に電源投入時の値は不定。
0048デフォルトの名無しさん2005/10/24(月) 00:53:55
とりあえず、面白そうだから今作っているところです。>RAMのゼロクリア&確認

コンパイラが吐き出すアセンブラコードなども元に色々やってます。

ちなみにコンパイラはSHCのver9です。
0049デフォルトの名無しさん2005/10/24(月) 06:57:09
Cで書かれたSTLやBOOSTが欲しいです
C++じゃないやつお願いします
0050デフォルトの名無しさん2005/10/24(月) 07:50:48
アホかい。
0051デフォルトの名無しさん2005/10/25(火) 20:55:20
void createNullpo(int count){
 int 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
関数「つどう」?
■ このスレッドは過去ログ倉庫に格納されています