【密码学·Miracl函数库应用】开始第一个测试程序

在编译完成静态资源库miracl.lib之后,就可以开始使用我们的miracl函数库了。在打包miracl.lib 的时候,给出过一个测试代码,下面开始一个简单的学习。
miracl是基于标准C语言开始的,所以在使用的时候,也用C语言进行开发,那么就可以通过extern "c"将编译环境放在C语言环境中。在文件开始位置添加下面的代码。

extern "C"
{
    
    
	#include "miracl.h"
	#include "mirdef.h"
}
#pragma comment(lib,"miracl.lib")

以第一个函数absol为例,absol函数的功能是求绝对值,在main函数中的完整代码为

extern "C"
{
    
    
	#include "miracl.h"
	#include "mirdef.h"
}
#pragma comment(lib,"miracl.lib")

int main()
{
    
    
	big x, y;
	
	miracl *mip = mirsys(500, 10); //初始化miracl系统,初始化一个500位10进制的大数系统

	x = mirvar(-100);//初始化必要步骤
	y = mirvar(0);

	absol(x, y);

	mip->IOBASE = 16;//将数值转换为16进制

	cotnum(x, stdout); //输出
	cotnum(y, stdout); 
	   
	mirkill(x);          //释放大数变量
	mirkill(y);

	return 0;
}

对于这段代码的几点说明:

  1. 首先是包含头文件,应该放在C语言的环境下,所以头文件的包含都在extern "C"中。
  2. 变量的定义与标准C语言中变量的定义相同,都可以放在函数的开头位置。然后是初始化一个miracl,也就是定义个mip指针,这个是必不可少的,而且应该在调用到miracl库之前就完成定义,所以可以放在变量定义之后。
  3. 函数mirval用于初始化整数,可以是很大的数值,也可以是很小的数值,前面定义的big类型变量,都需要初始化。
  4. 函数absol就是绝对值函数,他有两个参数,第一个参数是输入的整数,第二个参数是第一个参数的绝对值,函数absol将第一个参数取绝对值之后的结果给第二个参数。
  5. mip->IOBAES=16表示将结果转换为16进制数,最后输出的结果也确实是16进制数。
  6. 函数cotnum为输出函数,它将动态的结果打印出来,在黑色控制面板中看到的结果就是由这个函数打印的。
  7. 函数mirkill表示释放申请的大数据内存,也就是定义的那几个big类型变量的内存。

猜你喜欢

转载自blog.csdn.net/m0_50984266/article/details/108711314