参数#1的类型不兼容

时间:2018-09-26 12:19:22

标签: c

我很少使用C语言,但是我是开发的初学者。

我必须集成此代码:

     constructor(public navCtrl: NavController, public navParams: NavParams, public postsProvider: PostsProvider) {
          this.post = this.navParams.get('post');
  }

    `//IoHwab_fls.h
    ...
    Std_ReturnType ReturnVal;
    Fls_AddressType Test_ProgData[2 * FLS_PAGESIZE];
    uint8* Test_ReadData[2 * FLS_PAGESIZE];
    ...

在更广泛的项目中。但是我遇到以下错误:

//IoHwab_fls.c

#include "IoHwab_fls.h"

void flsDemo(void)
{
    ...
    ReturnVal = Fls_17_Pmu_Erase( FLS_BANK0_LINEAR,FLS_BANK_SIZE);
    ...
    ReturnVal = Fls_17_Pmu_Write(Test_ProgData, FLS_BANK0_LINEAR,(2*FLS_PAGESIZE));
    ...
    ReturnVal = Fls_17_Pmu_Read(FLS_BANK0_LINEAR ,Test_ReadData,(2 * FLS_PAGESIZE));
    ...
}

这是IoHwab_fls.c 23/31 incompatible types at argument #1 Fls_17_Pmu_Write(...)的原型:

Fls_17_Pmu_Read(...)

以及extern Std_ReturnType Fls_17_Pmu_Write( Fls_AddressType TargetAddress, const uint8 *SourceAddressPtr, Fls_LengthType Length ); extern Std_ReturnType Fls_17_Pmu_Read( Fls_AddressType SourceAddress, uint8 *TargetAddressPtr, Fls_LengthType Length ); 类型声明:

Fls_AddressType

我相信我的第一个论点的类型定义明确?是吗 ?您是否知道我该如何解决?

谢谢

2 个答案:

答案 0 :(得分:3)

Test_ProgDataTest_ReadData被声明为数组。

 Fls_AddressType Test_ProgData[2 * FLS_PAGESIZE];
 uint8* Test_ReadData[2 * FLS_PAGESIZE];

Fls_17_Pmu_WriteFls_17_Pmu_Read的签名表明,它们只能采用Test_ProgDataTest_ReadData类型的单个元素。

您只能通过定义 Fls_AddressTypeuint8*的单个实例并将它们传递给函数来解决此问题。

类似:

 Fls_AddressType My_Test_ProgData;
 uint8* My_Test_ReadData = malloc(1); //as size of uint8 is 1

答案 1 :(得分:2)

该参数的类型为import re for i in range(0,len(df['body'])): df['body'][i] = re.sub('\W+','', df['body'][i]) ,但是您传入了Fls_AddressType TargetAddress,它是Test_ProgData 的数组,并衰减为数组的第一个元素,因此错误是您的函数需要Fls_AddressType,但您正在传递Fls_AddressType TargetAddress

关于如何您可以解决这个问题-嗯,我不知道,因为我不知道该程序应该做什么