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

無我

讓內心永遠燃燒著偉大的光明的精神之火!
靈活的思考,嚴謹的實現
豪邁的氣魄、頑強的意志和周全的思考

eSNACC對BOOLEAN的編碼和解碼

本文剖析asn-bool.h/c,從源代碼來學習eSNACC對BOOLEAN的編碼和解碼。

BOOLEAN類型很簡單,所以代碼其實也很簡單,閑話少說,看代碼: 

#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文件的內容了。一目了然,基本沒什么說的,除了一些函數聲明,要提兩點:

1、eSNACC中對AsnBool是用unsigned char表示的。

2、布爾類型的釋放例程其實不需要做任何事情。這里要說的是:在一個程序中定義了同名的函數和宏,那到底會調用哪一個呢?

其實,我們關鍵是要記住宏和函數的根本區別:
宏是在預編譯階段對代碼進行替換。
而函數在編譯時鏈接找對應的函數地址,然后以生成機器碼。如果一個函數名有多個定義就會在連接的時候報錯。

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

 

 

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

編碼函數

/*
 * 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 */

可以看到編碼布爾型的過程是:

1.編碼布爾值內容。2.編碼這個值的長度。3.編碼布爾標簽,從代碼可以看到,asn.1的布爾型屬于UNIVERSAL-PRIM-1。

 

解碼函數

/*
 * 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 */

函數先判斷標簽是否正確,然后在解碼長度,最后解碼內容。

 

實現文件后面還有幾個例程,代碼很簡單,一看就會,就不貼出來了。

 

 

posted on 2012-04-20 15:55 Tim 閱讀(336) 評論(0)  編輯 收藏 引用 所屬分類: eSNACC學習

<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統計

公告

本博客原創文章,歡迎轉載和交流。不過請注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來源:www.shnenglu.com/Tim
感謝您對我的支持!

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合久久88| 久久精品国产99国产精品| 麻豆成人在线| 欧美伊人久久大香线蕉综合69| 欧美精品粉嫩高潮一区二区 | 亚洲精品偷拍| 欧美日本在线| 亚洲视频999| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲第一网站| 欧美电影在线观看| 久久综合伊人77777麻豆| 最新精品在线| 在线一区日本视频| 国产一区二区三区无遮挡| 免费亚洲电影在线| 欧美精品手机在线| 欧美一区二区三区的| 欧美在线你懂的| 亚洲啪啪91| 亚洲一区二区三区精品动漫| 国产综合久久| 亚洲老板91色精品久久| 国产欧美一区二区三区久久 | 亚洲高清在线视频| 亚洲精品免费一区二区三区| 欧美久久视频| 久久av最新网址| 欧美成人精品在线观看| 午夜精品视频一区| 另类人畜视频在线| 亚洲综合视频网| 久久天天躁夜夜躁狠狠躁2022| 99视频有精品| 久久国产欧美精品| 亚洲性av在线| 欧美jizz19hd性欧美| 亚洲欧美卡通另类91av| 免费日韩视频| 久久精品道一区二区三区| 欧美美女视频| 麻豆精品精华液| 国产精品亚洲综合一区在线观看| 免费日本视频一区| 国产欧美日韩三级| 亚洲美女中文字幕| 在线免费精品视频| 欧美怡红院视频| 亚洲欧美电影在线观看| 欧美成人四级电影| 久久嫩草精品久久久精品一| 欧美日一区二区在线观看 | 亚洲欧美日韩区 | 亚洲日本欧美在线| 精品va天堂亚洲国产| 亚洲亚洲精品在线观看| 亚洲美女中文字幕| 免费在线观看一区二区| 麻豆成人av| 国色天香一区二区| 欧美一区二区在线| 久久成人精品无人区| 国产精品福利在线观看| 日韩亚洲视频| 在线中文字幕不卡| 欧美日韩一区二区在线| 亚洲国产精品va在看黑人| 极品少妇一区二区三区| 久久福利影视| 久久综合狠狠| 尹人成人综合网| 久久视频国产精品免费视频在线| 久久精品一区二区三区四区| 国产日本欧美一区二区三区| 午夜精品久久久久久久蜜桃app| 亚洲欧美中文日韩v在线观看| 欧美午夜片欧美片在线观看| 一道本一区二区| 亚洲在线免费视频| 国产精品色在线| 欧美一区二区三区精品| 美玉足脚交一区二区三区图片| 影音先锋另类| 欧美成人精品激情在线观看| 亚洲精选在线观看| 午夜视频一区二区| 国产一区二区三区在线观看免费视频 | 亚洲视频日本| 国产精品久久9| 欧美一级二区| 欧美黑人在线播放| 亚洲色图在线视频| 国产精品揄拍500视频| 久久爱www.| 亚洲高清网站| 亚洲女性裸体视频| 国产一区91精品张津瑜| 欧美成人高清| 亚洲小说欧美另类社区| 另类综合日韩欧美亚洲| 亚洲乱码日产精品bd| 国产精品免费区二区三区观看| 性欧美精品高清| 欧美激情自拍| 午夜亚洲福利| 亚洲欧洲一区二区三区久久| 国产精品成人一区二区三区吃奶| 欧美一区二区免费观在线| 亚洲激情黄色| 久久精品国产亚洲精品| 亚洲精品乱码久久久久久日本蜜臀| 国产精品成人一区二区| 老司机aⅴ在线精品导航| 夜夜精品视频| 亚洲承认在线| 久久精品亚洲精品| 99这里有精品| 亚洲高清在线| 国产手机视频精品| 欧美理论电影在线观看| 久久精品视频在线播放| 一本色道久久综合亚洲精品不| 久久久在线视频| 亚洲欧美日韩精品久久| 亚洲精品综合| 亚洲高清不卡在线| 国产亚洲一区二区在线观看| 欧美日韩亚洲高清| 欧美成人午夜免费视在线看片| 欧美一区综合| 亚洲一区二区精品| 99pao成人国产永久免费视频| 免费国产自线拍一欧美视频| 性色一区二区三区| 亚洲一区在线观看视频| 亚洲伦理在线观看| 亚洲激情校园春色| 黄色成人在线网站| 好吊日精品视频| 国产午夜精品麻豆| 国产亚洲精品久久飘花| 国产精品裸体一区二区三区| 欧美手机在线视频| 欧美日韩在线一区| 欧美日精品一区视频| 欧美另类视频| 欧美日本网站| 欧美日韩在线三级| 欧美日韩一区二区在线观看| 欧美日韩人人澡狠狠躁视频| 欧美精品久久一区二区| 欧美精品色综合| 欧美日韩国产系列| 国产精品白丝av嫩草影院| 欧美视频在线免费| 国产精品免费福利| 国产亚洲欧美一区在线观看 | 久久亚洲精品视频| 久久久综合视频| 狼狼综合久久久久综合网 | 亚洲香蕉成视频在线观看| 一区二区三区精品久久久| 亚洲视频免费看| 亚洲欧美色婷婷| 久久精品官网| 女仆av观看一区| 欧美四级伦理在线| 国产日韩精品一区二区| 国内精品一区二区三区| 亚洲国产精品日韩| 亚洲视频国产视频| 久久精品99国产精品| 免费观看成人| 日韩一区二区精品视频| 亚洲欧美日韩精品久久亚洲区| 久久精品成人一区二区三区蜜臀| 久久久久综合网| 欧美日韩在线视频一区二区| 国产欧美一区二区三区视频 | 国产精品久久久久永久免费观看| 国产精品丝袜白浆摸在线| 国内精品久久久久久久影视蜜臀| 亚洲国产精品久久久久婷婷老年| 一本大道久久a久久精品综合| 欧美一区二区三区婷婷月色| 男人天堂欧美日韩| 在线亚洲一区| 久久深夜福利免费观看| 国产精品福利久久久| 亚洲国产精品成人| 亚洲欧美日韩中文播放| 欧美成人精品在线视频| 亚洲一区三区视频在线观看| 久久综合九色综合网站| 国产精品卡一卡二| 亚洲国产精品一区| 欧美在线播放一区| av成人免费在线| 免费av成人在线| 国产欧美一区二区三区在线看蜜臀 |