首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请帮忙实现几个函数,多谢

2012-02-05 
请帮忙实现几个函数,谢谢1./*関数名:

请帮忙实现几个函数,谢谢
1.
/*=================================================================関   数   名   :   メモリコピー   xmemcpy_NF
機         能   :   srcが指すfar領域から、destが指すnear領域へ、nバイトの
      メモリコピーを行う。
引数(I/O):   (i)   void   near   *   dest:   転送先nearポインタ
      void   far     *   src:   転送元farポインタ       unsigned   short   n:   転送バイト数   0..65535

戻   り   値   :   (o)   void   near   *:   destを返す。
備         考   :   領域の重複に関わらず正常にコピーする。
M16CのROM   or   RAMから、nearRAM   へのデータ転送に使用する。

函数名:内存COPY     xmemcpy_NF
机能     :从src指针所指定的远地址领域到dest指针所指定的近地址领域N   byte   COPY
参数     :   (i)   void   near   *   dest:   目标地址近指针
      void   far     *   src:   源地址远指针
unsigned   short   n:传送byte数   0~65535
返回值:   o)   void   near   *:   dest目标地址近指针返回
备注     :   目标地址部分和源地址部分可能有重复.
从M16C的ROM或   RAM到nearRAM的数据COPY
//=================================================================
void   near   *   xmemcpy_NF   (   void   near   *   dest,   void   far   *   src,   unsigned   short   n   )
{
}
2.
/*=================================================================
関   数   名   :   メモリ比較   xmemcmp
機         能   :   メモリブロックsrc1とメモリブロックsrc2を、nバイト分だけ比較。
    データをバイト単位(   unsigned   char   )として比較する。
引数(I/O):   (i)   void   far   *   src1:   第1比較メモリブロックのfarポインタ
      void   far   *   src2:   第2比較メモリブロックのfarポインタ
      unsigned   short   n:   比較バイト長

戻   り   値   :   (o)src1   ==   src2:0を返す。
src1   <   src2: <0
src1   >   src2:> 0
備         考   :

函数名:内存比较xmemcmp
机能     :从src1指针所指定的远地址领域到src2指针所指定的远地址领域N   byte比较
              以byte为单位(   unsigned   char   )比较.
参数     :   (i)   void   far   *   src1:   第1个比较内存块的远地址指针
  void   far   *   src2:   第1个比较内存块的远地址指针
  unsigned   short   n:   byte数
返回值:   o)   src1   ==   src2:返回0
  src1   <   src2: <0
  src1   >   src2:> 0
备注     :  

=================================================================*/

short   xmemcmp   (   const   void   far   *   src1,   const   void   far   *   src2,   unsigned   short   n   )
{
}

3.
/*=================================================================
関   数   名   :   メモリコピー   xmemset_F
機         能   :   sが示すfar領域に、cに設定されたデータをnバイト数分セットする。
引数(I/O):   (i)   void   far   *   s:   設定先メモリポインタ
    char   c:   設定するデータ   0~255
    unsigned   short   n:   設定バイト数   0~65535
戻   り   値   :   (o)   なし
備         考   :   メモリクリアなどに使用する。


      farRAM対応。
      ただし、nearRAMなら   xmemset_N   の方が高速かつ軽量。
    Size:   38   byte
    Cycle:   25   +   5   *   (   n   /   2   )(設定バイト数が偶数の場合)
    Cycle:   26   +   5   *   ((   n   -   1   )   /   2   )(設定バイト数が奇数の場合)
    Cycle:   25     (設定バイト数が1だった場合)
 Cycle:   7
(設定バイト数が0だった場合)

函数名:内存设定xmemset_F
机能     :向s指针所指定的远地址的N   byte领域里设定固定值c
参数     :   (i)   void   far   *   s:   设定目标的地址指针
    char   c:   设定固定值0~255
    unsigned   short   n:   byte数      
返回值:   o)   没有
备注     :  

================================================================*/
void   xmemset_F   (   void   far   *   s,   char   c,   unsigned   short   n   )
{
}
4、
/*=================================================================
関   数   名:テーブルスキャンジャンプ xtbl_scall_v
機         能:検索分岐テーブル構造体を参照し、検索コード "tbl_key "に対応した
  関数をコールする。
  検索は0xffを検出するまで行われる。よって0xffを検索さ
  せるためには、最終検索位置に置くこと。
                  検索コードが検出できない場合は、最終検索位置をコールする。
  検索コードが検出されれば、対応関数をコールする。
       戻り値= 検出した : 1
              しない: 0
     
引数(I/O):   (i)   unsigned   char   tbl_key     :   検索コード
戻   り   値   :   (o)   検出した場合       = 1
                      しない場合   = 0
備         考   :  
記述例:  
      void   func1(void){return(1);}
      void   func2(void){return(2);}
      void   func3(void){return(3);}忘れずに!      
                  {3,func1},   {4,func2},   {0xff,func3}
  a   =   xtbl_scall_v(8,   tbl);       ← func3が呼ばれる。   a   =   0   になる。

函数名:   查表跳转xtbl_scall_v  
机能     :查找表里边和tbl_key一致所对应的函数并调用该函数.
查表查到0XFF则停止,   因此表中   0XFF放在表的末尾.
如果在表中查不到和tbl_key一致的值,调用最终位置的空函数.
如果在表中查到和tbl_key一致的值,调用和该值对应的函数
参数     :   (i)   unsigned   char   tbl_key     :   检搜码
    表地址      
返回值:   o)   查到时返回1
                  没有查到时返回0
备注     :   例
void   func1(void){return(1);}
        void   func2(void){return(2);}
        void   func3(void){return(3);}
        {3,func1},   {4,func2},   {0xff,func3}


================================================================*/

short   xtbl_scall_v(   unsigned   char   tbl_key,   (?)   *   scall_tbl   )
{
}

5、
/*=================================================================
関   数   名   :   テーブルスキャン xtbl_scn
機         能   :    検索分岐テーブル構造体を参照し、検索コード "tbl_key "に対応した


      データ群のポインタを返す。
       検索は0xffを検出するまで行われる。よって0xffを検索さ
                  せるためには、最終検索位置に置くこと。
検索失敗時は、最終データ群のポインタを返す。      
引数(I/O):   (i)   unsigned   char   tbl_key   :   検索コード
  void   far   *scn_tbl   :   スキャン用テーブルのポインタ
  rec_size   :   レコードバイトサイズ(データ群(n)+1)
戻   り   値   :   (o)   検出した場合       = 対応データ群へのポインタ。void型で返す。
              しない場合   = 最終データ群  〃   。  〃   。
備         考   :  
記述例       :char   scn_tbl[]={   5,         'a ', 'b ', 'c ', 'd ', '\0 ',
  10,       'd ', 'e ', 'f ', 'g ', '\0 ',
  0xFF,   'g ', 'h ', 'i ', 'j ', '\0 '   };

函数名:   表查找xtbl_scn    
机能     :查找表里边和tbl_key对应的数据返回指向该数据的指针.
查表查到0XFF就停止,   因此请将0XFF放在表的末尾.
如果在表中查不到和tbl_key一致的值,   返回指向表尾数据的指针.
参数     :   (i)   unsigned   char   tbl_key     :   检搜码
    表地址      
                  rec_size:数据块的长度
返回值:   o)   如果在表中查到和tbl_key一致的值,返回指向对应数据的指针
如果在表中查不到和tbl_key一致的值,   返回指向表尾的指针
备注     :   例

================================================================*/
void   far   *   xtbl_scn   (   unsigned   char   tbl_key,   void   far   *   scn_tbl,   unsigned   short   rec_size   )
{
}


[解决办法]
有可能还要考虑兼容windows3.1
[解决办法]

。。。

memcpy
memset
memcmp

- -

热点排行