青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

無(wú)我

讓內(nèi)心永遠(yuǎn)燃燒著偉大的光明的精神之火!
靈活的思考,嚴(yán)謹(jǐn)?shù)膶?shí)現(xiàn)
豪邁的氣魄、頑強(qiáng)的意志和周全的思考

eSNACC對(duì)BOOLEAN的編碼和解碼

本文剖析asn-bool.h/c,從源代碼來(lái)學(xué)習(xí)eSNACC對(duì)BOOLEAN的編碼和解碼。

BOOLEAN類(lèi)型很簡(jiǎn)單,所以代碼其實(shí)也很簡(jiǎn)單,閑話少說(shuō),看代碼: 

#ifndef _asn_bool_h_
#define _asn_bool_h_

#ifdef __cplusplus
extern "C" {
#endif


typedef unsigned 
char AsnBool;


AsnLen BEncAsnBool PROTO ((GenBuf 
*b, AsnBool *data));

void BDecAsnBool PROTO ((GenBuf *b, AsnBool *result, AsnLen *bytesDecoded, ENV_TYPE env));

AsnLen BEncAsnBoolContent PROTO ((GenBuf 
*b, AsnBool *data));

void BDecAsnBoolContent PROTO ((GenBuf *b, AsnTag tag, AsnLen len, AsnBool *result, AsnLen *bytesDecoded, ENV_TYPE env));

/* do nothing  */
void FreeAsnBool PROTO ((AsnBool *b));
#define FreeAsnBool( v)

void PrintAsnBool PROTO ((FILE *f, AsnBool *b, unsigned int indent));

#ifdef __cplusplus
}

#endif /* extern 'C' */

以上就是.h文件的內(nèi)容了。一目了然,基本沒(méi)什么說(shuō)的,除了一些函數(shù)聲明,要提兩點(diǎn):

1、eSNACC中對(duì)AsnBool是用unsigned char表示的。

2、布爾類(lèi)型的釋放例程其實(shí)不需要做任何事情。這里要說(shuō)的是:在一個(gè)程序中定義了同名的函數(shù)和宏,那到底會(huì)調(diào)用哪一個(gè)呢?

其實(shí),我們關(guān)鍵是要記住宏和函數(shù)的根本區(qū)別:
宏是在預(yù)編譯階段對(duì)代碼進(jìn)行替換。
而函數(shù)在編譯時(shí)鏈接找對(duì)應(yīng)的函數(shù)地址,然后以生成機(jī)器碼。如果一個(gè)函數(shù)名有多個(gè)定義就會(huì)在連接的時(shí)候報(bào)錯(cuò)。

所以,如果在代碼中直接出現(xiàn)了這個(gè)相同的名字并且符合宏的定義的話,在預(yù)編譯階段就被替換掉了,除了是用函數(shù)指針,否則就沒(méi)有函數(shù)的用武之地了。
頭文件到此,下面看源文件。

 

 

///*************************************休息一下******************************

編碼函數(shù)

/*
 * encodes universal TAG LENGTH and Contents of and ASN.1 BOOLEAN
 
*/

AsnLen
BEncAsnBool PARAMS ((b, data),
    GenBuf 
*b _AND_
    AsnBool 
*data)
{
    AsnLen len;

    len 
=  BEncAsnBoolContent (b, data);
    len 
+= BEncDefLen (b, len);
    len 
+= BEncTag1 (b, UNIV, PRIM, BOOLEAN_TAG_CODE);
    
return len;
}
  /* BEncAsnBool */

可以看到編碼布爾型的過(guò)程是:

1.編碼布爾值內(nèi)容。2.編碼這個(gè)值的長(zhǎng)度。3.編碼布爾標(biāo)簽,從代碼可以看到,asn.1的布爾型屬于UNIVERSAL-PRIM-1。

 

解碼函數(shù)

/*
 * decodes universal TAG LENGTH and Contents of and ASN.1 BOOLEAN
 
*/

void
BDecAsnBool PARAMS ((b, result, bytesDecoded, env),
    GenBuf 
*b _AND_
    AsnBool    
*result _AND_
    AsnLen 
*bytesDecoded _AND_
    jmp_buf env)
{
    AsnTag tag;
    AsnLen elmtLen;

    
if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, PRIM, BOOLEAN_TAG_CODE))
    
{
         Asn1Error (
"BDecAsnBool: ERROR - wrong tag on BOOLEAN.\n");
         longjmp (env, 
-40);
    }


    elmtLen 
= BDecLen (b, bytesDecoded, env);
    BDecAsnBoolContent (b, tag, elmtLen, result, bytesDecoded, env);

}
  /* BDecAsnBool */

函數(shù)先判斷標(biāo)簽是否正確,然后在解碼長(zhǎng)度,最后解碼內(nèi)容。

 

實(shí)現(xiàn)文件后面還有幾個(gè)例程,代碼很簡(jiǎn)單,一看就會(huì),就不貼出來(lái)了。

 

 

posted on 2012-04-20 15:55 Tim 閱讀(332) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): eSNACC學(xué)習(xí)

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

導(dǎo)航

統(tǒng)計(jì)

公告

本博客原創(chuàng)文章,歡迎轉(zhuǎn)載和交流。不過(guò)請(qǐng)注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來(lái)源:www.shnenglu.com/Tim
感謝您對(duì)我的支持!

留言簿(9)

隨筆分類(lèi)(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合伊人77777尤物| 午夜精品免费在线| 欧美国产精品久久| 99国产精品99久久久久久| 亚洲精品人人| 国产欧美日韩综合精品二区| 久久国产精品一区二区三区四区 | 麻豆精品传媒视频| 日韩亚洲欧美精品| 亚洲一级黄色片| 国产一区二区三区奇米久涩| 免费成人黄色片| 欧美日韩另类综合| 久久九九电影| 欧美激情欧美狂野欧美精品 | 在线日韩av片| 日韩视频在线免费观看| 国产日韩欧美在线| 欧美电影在线免费观看网站| 欧美日韩一区三区| 久久这里有精品视频| 欧美激情综合在线| 久久久久久久久久久一区 | 国产欧美一区二区三区在线看蜜臀 | 欧美新色视频| 毛片av中文字幕一区二区| 欧美高清在线精品一区| 久久av一区二区| 欧美日韩成人在线观看| 久久这里只精品最新地址| 欧美日韩一区二区三区四区五区| 久久久久9999亚洲精品| 欧美日韩情趣电影| 欧美激情在线| 黄色精品一区二区| 亚洲一区二区在| 99国产精品久久久久老师| 久久久国产精品一区| 午夜精品免费在线| 欧美日韩亚洲91| 欧美激情第3页| 欧美一区二区三区日韩视频| 99精品99| 欧美国产日韩亚洲一区| 欧美jizzhd精品欧美巨大免费| 国产精品ⅴa在线观看h| 亚洲人成网在线播放| 国产真实乱偷精品视频免| 制服诱惑一区二区| 亚洲一区二区免费视频| 欧美日韩国产不卡| 亚洲黄色大片| 亚洲免费大片| 欧美极品aⅴ影院| 亚洲人成亚洲人成在线观看图片| 黑人一区二区三区四区五区| 亚洲男人天堂2024| 羞羞答答国产精品www一本 | 欧美日本亚洲视频| 亚洲精品国产视频| 日韩午夜在线观看视频| 欧美激情综合| 亚洲每日在线| 亚洲综合三区| 国产欧美丝祙| 久久国产欧美| 老司机67194精品线观看| 伊人精品在线| 欧美不卡一卡二卡免费版| 欧美激情自拍| 99国产精品久久久久久久| 欧美日韩精品在线播放| 一二三四社区欧美黄| 午夜精品影院| 韩国在线视频一区| 欧美77777| 一区二区欧美在线观看| 欧美一区二区三区精品电影| 国产在线精品自拍| 免费在线亚洲| 一本色道久久综合| 久久精品99久久香蕉国产色戒| 激情综合电影网| 欧美日韩国产片| 午夜精品www| 欧美国产日韩精品| 亚洲午夜精品网| 国内精品久久久久久久影视蜜臀| 久久综合久久88| 99热这里只有精品8| 久久久国产一区二区| 亚洲人成在线观看| 国产精品视频你懂的| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲美女黄网| 久久精品亚洲国产奇米99| 亚洲精品美女91| 国产日韩在线亚洲字幕中文| 欧美成人亚洲成人| 欧美一区二区私人影院日本| 亚洲激情在线视频| 久久久久久穴| 亚洲图片在线观看| 亚洲国产婷婷| 国产真实精品久久二三区| 欧美日韩亚洲免费| 久久精品人人做人人综合 | 亚洲黄色成人网| 久久久青草婷婷精品综合日韩| 一区二区三区日韩在线观看| 久久久噜噜噜久久中文字免| 夜夜嗨av一区二区三区四区| 欧美成人国产| 久久精品理论片| 亚洲在线一区二区三区| 亚洲欧洲在线看| 狠狠久久五月精品中文字幕| 国产精品久久福利| 欧美伦理91| 欧美精品999| 欧美mv日韩mv国产网站| 久久九九精品99国产精品| 亚洲一区二区三区中文字幕在线| 亚洲人成啪啪网站| 亚洲第一精品福利| 免播放器亚洲| 免费在线成人| 麻豆精品视频| 欧美不卡激情三级在线观看| 久久夜色精品国产| 久久久久久国产精品一区| 欧美在线视频免费播放| 午夜精品久久久久久久久久久久久| 一区二区高清在线观看| 亚洲精品在线视频| 夜夜嗨av一区二区三区网页| 99ri日韩精品视频| 中文在线不卡视频| 亚洲在线观看| 午夜视频久久久| 欧美在线观看视频在线| 久久国产一二区| 久久久久青草大香线综合精品| 久久九九99| 欧美国产大片| 亚洲毛片在线| 亚洲一区二区三区精品视频| 亚洲综合欧美日韩| 欧美中文在线字幕| 久久国产欧美| 欧美成人官网二区| 欧美色图首页| 国产视频观看一区| 亚洲高清成人| 一区二区三区高清不卡| 亚洲伊人伊色伊影伊综合网| 欧美一区2区三区4区公司二百| 久久精品视频播放| 嫩草成人www欧美| 亚洲精品网址在线观看| 亚洲一区二区影院| 老司机一区二区| 欧美日韩在线视频观看| 国产拍揄自揄精品视频麻豆| 影音先锋久久精品| 中国亚洲黄色| 久久综合网hezyo| 亚洲国产日韩欧美在线图片| 亚洲一区二区三区高清| 久久久久国产精品午夜一区| 欧美国产日本高清在线| 国产精品久久久久久久久免费樱桃 | 亚洲黄色免费网站| 亚洲影视在线| 久久在线视频| 在线视频中文亚洲| 久久久久久久成人| 国产精品theporn88| 亚洲第一区在线观看| 亚洲一卡久久| 欧美国产一区二区在线观看 | 久久香蕉精品| 国产精品一区二区黑丝| 亚洲免费av网站| 老司机午夜精品| 亚洲午夜三级在线| 亚洲精品国偷自产在线99热| 香蕉精品999视频一区二区 | 欧美日韩一区免费| 亚洲国产高清自拍| 久久精品主播| 亚洲午夜精品久久久久久浪潮| 免费一级欧美片在线播放| 国产女主播一区二区| 中国日韩欧美久久久久久久久| 快she精品国产999| 性色一区二区| 国产精品揄拍一区二区| 亚洲午夜精品福利| 亚洲精品在线二区|