发布时间:2022-10-04 12:00来源:www.51edu.com作者:畅畅
这个问题 我可以非常明确地告诉你,C#无法直接调用这种参数的函数,C#中你描述的那种二维数组,本质上跟一维数组一致。倒是single[][]跟float**是类似的,但是也不能直接传递。
然后具体说说
float* arr arr为指向float型的指针
single[] arr arr为single型数组的引用,当传递给API时,会自动传递内部指针,这个指针才真真的指向single型的指针
float** arr arr为一个指向float型指针的指针,即arr[]应该是一个float型指针
single[][] arr arr为一个single型数组引用的数组引用,这意味着arr的内部指针指向的是single[]型引用的指针,跟指向single型指针完全是两码事
综上所述,C#不能直接调用Test(float** arr,int rows,int cols),你必须使用非安全代码构造一个single*[],然后将这个数组传递过去。下面是一个例子
[DllImport(test.dll)]
static extern unsafe bool Test(float*[] arr, int row, int col);//这里arr要声明为float*[],使用起来比较方便
bool CallTest(float[,] arr)
{
int row = arr.GetUpperBound(0) + 1;
int col = arr.GetUpperBound(1) + 1;
unsafe
{
fixed(float* fp=arr)
{
float*[] farr=new float*[row];
for (int i = 0; i {
farr[i] = fp + i * col;
}
return Test(farr, row, col);
//如果Test(float** arr, int row, int col)这样声明,就要用下面的方法调用
//fixed(float** fpp=farr)
//{
// return Test(fpp, row, col);
//}
}
}
}
一、什么是DSP技术
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛DSP技术图解的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
二、实现方法
DSP的实现方法一般有以下几种:
(1) 在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;
(2) 在通用计算机系统中加上专用的加速处理机实现;
(3) 用通用的单片机(如MCS-51、96系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制等;
(4) 用通用的可编程DSP实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于 复杂的数字信号处理算法;
(5) 用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。
在上述几种方法中,第1种方法的缺点是速度较慢,一般可用于DSP算法的模拟;第2种和第5种方法专用性强,应用受到很大的限制,第2种方法也不便于系统的独立运行;第3种方法只适用于实现简单的DSP算法;只有第4种方法才使数字信号处理的应用打开了新的局面。
上一篇:怎样才能学好DSP芯片?
下一篇:dsp 编程
流浪法师出装,英雄联盟手游小法师怎么出装
勇者斗恶龙7安卓攻略,勇者斗恶龙7安卓
lol小鱼皮肤哪个手感好,菲兹皮肤手感排行
妄想山海香料蘑菇怎么做,妄想山海臭豆腐配方和制作方法分享
厄运之槌地图走法,魔兽厄运之槌副本入口
另一个伊甸奈岐角色任务,另一个伊甸奈岐技能介绍及强度测评
西部荒野稀有乌尔图斯,外域稀有精英分布图
奶茶制作方法,妄想山海烤全鱼配方和制作方法分享
洛克王国酷拉要刷多少次,洛克王国酷拉在哪
开心消消乐
类型:休闲益智
解压宝盒
类型:休闲益智
迷你世界
类型:休闲益智
恐怖奶奶
类型:休闲益智
老板挪个车2
类型:休闲益智
我的狗狗
类型:休闲益智
贪吃蛇大作战
类型:休闲益智
白块儿达人-节奏钢琴黑白块
类型:休闲益智
解压模拟大师
类型:休闲益智