【密碼學(xué)編程·Miracl函數(shù)庫(kù)】開始第一個(gè)測(cè)試程序
在編譯完成靜態(tài)資源庫(kù)miracl.lib之后,就可以開始使用我們的miracl函數(shù)庫(kù)了。在打包miracl.lib 的時(shí)候,給出過(guò)一個(gè)測(cè)試代碼,下面開始一個(gè)簡(jiǎn)單的學(xué)習(xí)。
miracl是基于標(biāo)準(zhǔn)C語(yǔ)言開始的,所以在使用的時(shí)候,也用C語(yǔ)言進(jìn)行開發(fā),那么就可以通過(guò)extern "c"將編譯環(huán)境放在C語(yǔ)言環(huán)境中。在文件開始位置添加下面的代碼。
extern "C"
{
#include "miracl.h"
#include "mirdef.h"
}
#pragma comment(lib,"miracl.lib")
以第一個(gè)函數(shù)absol為例,absol函數(shù)的功能是求絕對(duì)值,在main函數(shù)中的完整代碼為

對(duì)于這段代碼的幾點(diǎn)說(shuō)明:
1、首先是包含頭文件,應(yīng)該放在C語(yǔ)言的環(huán)境下,所以頭文件的包含都在extern "C"中。
2、變量的定義與標(biāo)準(zhǔn)C語(yǔ)言中變量的定義相同,都可以放在函數(shù)的開頭位置。然后是初始化一個(gè)miracl,也就是定義個(gè)mip指針,這個(gè)是必不可少的,而且應(yīng)該在調(diào)用到miracl庫(kù)之前就完成定義,所以可以放在變量定義之后。
3、函數(shù)mirval用于初始化整數(shù),可以是很大的數(shù)值,也可以是很小的數(shù)值,前面定義的big類型變量,都需要初始化。
4、函數(shù)absol就是絕對(duì)值函數(shù),他有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸入的整數(shù),第二個(gè)參數(shù)是第一個(gè)參數(shù)的絕對(duì)值,函數(shù)absol將第一個(gè)參數(shù)取絕對(duì)值之后的結(jié)果給第二個(gè)參數(shù)。
5、mip->IOBAES=16表示將結(jié)果轉(zhuǎn)換為16進(jìn)制數(shù),最后輸出的結(jié)果也確實(shí)是16進(jìn)制數(shù)。
6、函數(shù)cotnum為輸出函數(shù),它將動(dòng)態(tài)的結(jié)果打印出來(lái),在黑色控制面板中看到的結(jié)果就是由這個(gè)函數(shù)打印的。
7、函數(shù)mirkill表示釋放申請(qǐng)的大數(shù)據(jù)內(nèi)存,也就是定義的那幾個(gè)big類型變量的內(nèi)存。