メインページ | アルファベット順一覧 | データ構造 | ファイル一覧 | データフィールド | グローバル | 関連ページ

# dkutil_cstd

### 0.19

## 概要

dkutil_cstdライブラリはC言語ランタイムライブラリを使いたくない人用のC言語で実装したライブラリです。
標準のC言語ランタイムライブラリ（stdlib.h等）が重いんだよぉ！ってときに使ってください。 不毛な気もしますが＾＾； 私自身が受験勉強のストレス解消用に作ったような物です･･･。

TODO:
  C言語で実装できるものは一通り行う

## 更新情報

- 2005/03/05:
  memory.cのFPU系以外のすべてのmemcpy郡のテスト完了。 多分OK.

  x86_optimized_memcpy.hはオフセットとかメモリアラインとかに注意して使うべし。

- 2005/03/04:
  x86.cの一部を実装 stdbool.hの_Bool定義の条件が間違っていたのを修正 aligned_free_calcの計算が間違っていたのを修正 before / f = (void *)pb; after / f = (void *)(*pb);

- 2005/02/22:
  Dev-C++(MinGW)でコンパイルする場合dkutil_cと一緒にコンパイルしなくてはいけないようにした。
  なぜなら、いちいちDev-C++のプロジェクトを作成するのが面倒だから＾＾；スマン。
  string.cにdkcstd_wcsncat() dkcstd_wcsncpy()を追加
  dkcstd_memmove()のC言語版のソースがコンパイルの通らなかったのを改善
  stdbool.hやstddef.h,math.c,math.hを追加
- 2005/02/20:
  x86_optimized_memcpy.hを追加。 その時にDKC_INLINEがインライン修飾子に変換されない点を見つけたので変更。 Before

      <font color="#0000ff>">#</font>  <font color="#0000ff>">if</font> <font color="#000000>">_MSC_VER</font> >= <font color="#000000>">1100</font> && <font color="#000000>">defined</font>(<font color="#000000>">_inline</font>)
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#000000>">_inline</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">elif</font> <font color="#000000>">defined</font>(<font color="#000000>">__inline</font>)
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#000000>">__inline</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">elif</font> <font color="#000000>">defined</font>(<font color="#0000ff>">inline</font>)
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#0000ff>">inline</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">elif</font> <font color="#000000>">USEINLINE</font>
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#000000>">__inline__</font>
      <font color="#0000ff>">#</font>  <font color="#0000ff>">else</font>
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">endif</font>

  After

      <font color="#0000ff>">#</font>  <font color="#0000ff>">if</font> <font color="#000000>">_MSC_VER</font> >= <font color="#000000>">1100</font>
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#000000>">__inline</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">elif</font> <font color="#000000>">USEINLINE</font>
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font> <font color="#000000>">__inline__</font>
      <font color="#0000ff>">#</font>  <font color="#0000ff>">else</font>
      <font color="#0000ff>">#</font>    <font color="#000000>">define</font> <font color="#000000>">DKC_INLINE</font>
      <font color="#0000ff>">#</font>  <font color="#000000>">endif</font>

- 2005/01/25:

        <font color="#000000>">size_t</font> <font color="#000000>">mod_</font> = <font color="#000000>">count</font> - <font color="#000000>">cnt</font> * <font color="#0000ff>">sizeof</font>(<font color="#000000>">size_t</font>);
        <font color="#000000>">と</font>、<font color="#000000>">記述するよりは</font>
        <font color="#000000>">size_t</font> <font color="#000000>">mod_</font> = <font color="#000000>">count</font> % <font color="#0000ff>">sizeof</font>(<font color="#000000>">size_t</font>);
        <font color="#000000>">と</font>、<font color="#000000>">記述した方がイイコードが生成されらしいので直した</font>。

- 2005/01/24:mmxやsseを使ったmemcpyを実装 テストコード追加
- 2005/01/23:大体いろんなのをテストする。
- 2005/01/17:大体いろんなのを暇つぶしに作り上げる。

## 使い方

stdlib.hを読みこむ。 すべてのソースを自分のプロジェクトに追加するとか、ライブラリにして各自使うとか。

## 今後の方向性

- C言語で実装できるならば実装
- アセンブラで記述すると劇的に速くなる？ならば実装

## 謝辞

- memcpy郡やCPUチェック等のソースを「memory copy code benchmark」より流用しています。XELF氏に感謝します。

## ライセンス

NYSLです。

- Original http://www.kmonos.net/nysl/
- English http://www.kmonos.net/nysl/index.en.html

作者への報告があれば、当然喜びますし、より良いライブラリになるでしょう。
報告がなくても、商用利用してかまいませんし、改変をしてもかまいません。

## 作者に関して

- author d金魚
- Project page http://dkingyoutility.sourceforge.jp/
- Mail Address(スペースを繋げたり、atmarkを@にしたりしてください。) studio kingyo net atmark users.sourceforge.jp

連絡がつかない場合 http://www3.to/shisui/ または、dKingyo Utility Toolkit とか dkutilとかのキーワードで ググってみると（Googleで検索すると）出てきます。

作者:
  d金魚 / dkutil_cstd Copyright(c) 2005- d金魚 All rights reserved.