我是ARM平台的新手。
下面的代码已被用于函数中,用于找出一些复数样本的共轭乘法并将其滑动到某些样本中。
此代码在linux 12.04版本的本机编译器中正常工作。在ARM中运行相同的代码时,它不会执行该功能。它只是从代码运行中退出。
#include<stdio.h>
int main()
{
float aa[12]={1,1,1,1,1,1,1,1,1,1,1,1};
float *x=aa,*y=x+6,real=0,imag=0;
fn_ComplexMultiply_addthem(x,y,6,&real,&imag);
printf("real value = %f\n",real);
printf("real value = %f\n",imag);
}
void fn_ComplexMultiply_addthem(float *x, float *y, float len, float *re, float *im)
{
int j;
for( j=0; j<len; j+=2)
{
*re += (x[j]*(y[j]));
*re -= (x[j+1]*(-y[j+1]));
*im += (x[j]*(-y[j+1]));
*im += (x[j+1]*(y[j]));
}
}
我无法理解它的原因。每个指针指向一些值,然后它应该给我结果,无论什么可能是正确的。相反,它只是退出模拟。
它会像堆栈等内存一样出现问题吗? 请帮我调试一下。
答案 0 :(得分:5)
程序无效,因为在声明fn_ComplexMultiply_addthem
之前使用float len
,并且隐式声明与实际定义不匹配。
此外,len
毫无意义。我们不使用浮点数进行计数。
将int
更改为main
并在void fn_ComplexMultiply_addthem(float *x, float *y, int len, float *re, float *im);
之前添加函数声明:
-Wall -Werror
始终启用编译器警告并将其视为错误(gcc和clang为<script>
$("#table1").bootstrapTable({
columns: [
{ field: 'fn', title: "First Name" }, { field: 'ln', title: "Last Name" }, { field: 'gender', title: "Gender" },
{ field: 'totalmarks', title: "Total Marks" }, { field: "totalcourses", title: "Total Courses Enrolled In" },
{field: 'links', title: "Actions"}
],
data: [
@foreach (var item in Model)
{
int total = ((StudentsController)this.ViewContext.Controller).totc(@item.Id);
@: { fn: '@item.FirstName', ln: '@item.LastName', gender: '@item.Gender', totalmarks: '@item.TotalMarks', totalcourses: '@total',
@: links: '<input type="button" value="Edit" onclick="window.location.href='@Url.Action("Edit","Students")';" />' }
]
});
)。