C语言或C++编写二维码的解码部分详细的源代码及说明?

C语言或C++编写二维码的解码部分详细的源代码及说明?,第1张

1、二维码有很多种标准,可以控制存储数据的信息量,也可以控制容错的数据量[使得部分污损的二维码可以被正常读取。通常的做法是调用二维码设计方提供的组件,如果是自己生成二维码,应该可以生成可以看起来很像的东西。

2、例程:

<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcode*pQRcode)

{

T_PixelDatasg_tOriginPixelDatas

T_PixelDatasg_tZoomPixelDatas

//intiZoom

inti

g_tOriginPixelDatas.iWidth= pQRcode->width

g_tOriginPixelDatas.iHeight=pQRcode->width

g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth

g_tOriginPixelDatas.aucPixelDatas= pQRcode->data

/*

if(pQRcode->version<= 1)

{

iZoom= 2

}

else

{

iZoom= 2

}

g_tZoomPixelDatas.iWidth = pQRcode->width*iZoom

g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom

g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth

g_tZoomPixelDatas.aucPixelDatas= malloc(g_tZoomPixelDatas.iWidth* g_tZoomPixelDatas.iHeight)

if(g_tZoomPixelDatas.aucPixelDatas== NULL)

{

printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed\n")

return-1

}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas)

#if 0

printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d\n", g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight)

for(i=0i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight)i++)

{

printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i])

}

printf("\n")

#endif

*/

Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas)

return 0

}

因为stmf429运行起来后内存不够,这里不用申请内存再扩充放大二维码数据的方法,而是直接描点。所以这里注释掉了放大部分。

程序:

#include<stdio.h>

intmain()

{

intarr[10]={0}

inti=0

intmax=0

intmin=0

printf("请输入10个整数:")

for(i=0i<sizeof(arr)/sizeof(arr[0])i++)

{

scanf("%d",&arr[i])

}

max=arr[0]

for(i=0i<sizeof(arr)/sizeof(arr[0])i++)

{

if(max<arr[i])

{

max=arr[i]

}

}

min=arr[0]

for(i=0i<sizeof(arr)/sizeof(arr[0])i++)

{

if(min>arr[i])

{

min=arr[i]

}

}

printf("max=%d\n",max)

printf("min=%d\n",min)

return0

}

结果:

请输入10个整数:123562367673211567

max=767

min=1

请按任意键继续...

扩展资料:

编写过程分为三部分:源代码文件------>目标代码文件------>可执行文件。

用到两个组件:编译器、链接器。编译器的作用是将源代码转换为中间代码,产生中间文件。链接器将此中间代码与其他代码相结合来生成可执行文件。

中间文件的形式有多种,一般就是将源代码文件转换为机器语言代码,将其结果放置在一个目标代码文件中。虽然目标代码文件包含机器代码文件,但是该文件还不能运行。目标文件包含源代码的转换结果,但它还不是一个完整的程序,也就是不是一个完整的可执行文件,它还需要与一些基本元素。

目标代码文件中所缺少的第一个元素是一种叫做启动代码的东西,这个代码相当于程序跟 *** 作系统之间的接口。所缺少的第二个元素是库例程的代码,几乎所有c程序都利用标准c库中所包含的例程,例如printf。

而链接器的作用就是将这三部分结合在一起,并将它们存放在单个文件,即可执行文件中,这样,一个完整的可执行文件就产生了。

开发C程序有四个步骤:编辑、编译、连接和运行。

任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。

1、预处理:导入源程序并保存(C文件)。

2、编译:将源程序转换为目标文件(Obj文件)。

3、链接:将目标文件生成为可执行文件(EXE文件)。

4、运行:执行,获取运行结果的EXE文件。

扩展资料:

将C语言代码分为程序的几个阶段:

1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。

2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。

3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。

4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。

参考资料来源:百度百科-c语言


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11003138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存