我有 3 个错误:预期为 ")" ,预期为表达式,long 类型的参数与 U32 类型的参数不兼容

Posted

技术标签:

【中文标题】我有 3 个错误:预期为 ")" ,预期为表达式,long 类型的参数与 U32 类型的参数不兼容【英文标题】:I have 3 errors:expected a ")" , expected an expression, argument of type long is incompatible with parameter of type U32 【发布时间】:2013-12-12 08:28:06 【问题描述】:
/*******************************************************************/
#define cdisp(a, src, col);
#define FL_wpset_U8 256;
/*******************************************************************/
void main(void)

    int posx= 100, posy=100, dx=300, dy=300; 
    long length=5000; 
    int threshold=125; 
    int lx, x0=0, y0=0;
    int res1=0,res2=0, *rlc, *input, i;
    long dest1,dest2,desttemp, addr;
    char c;
    image Area, Ovl;





    ScrSetLogPage((int)ScrGetPhysPage);
    OvlSetLogPage((int)OvlGetPhysPage);

    OvlClearAll;

    set_ovlmask(255);

    ImageAssign(&Area,ScrByteAddr(posx,posy), dx, dy, ScrGetPitch);

    ImageAssign(&Ovl,OvlBitAddr(posx,posy), dx, dy, OvlGetPitch);


    frameo(&Ovl);




    vmode(vmOvlLive);
    /* follow contour */
    dest1=DRAMWordMalloc((long)length);
    dest2=DRAMWordMalloc((long)length);

2 个错误位于 frameo(&Ovl) 行中(应为 ")" ,应为表达式)。

desttemp = dest1;
res1 = contour8(&Area,x0,y0,~2,threshold,length,&desttemp);

最后一个错误在最后一行(long 类型的参数与 U32 类型的参数不兼容)。 contour8 的函数签名是I32 contour8(image *a, I32 x0, I32 y0, I32 dir, I32 thr, U32 lng, U32 **dst)。 不知道怎么解决,先谢谢了。

【问题讨论】:

main 必须具有 int 返回类型。至于你的最后一个错误,单指针不是双指针。 请注意,报告缺失 ) 的位置在错误所在的位置之后。 什么是OvlClearAll;? C 中的函数调用必须有()。如果你省略了(),你会得到一个函数指针。 【参考方案1】:

您几乎肯定不希望在#define 行的末尾使用这些分号。 使用它们很可能会将语句分隔符注入到表达式的中间。

【讨论】:

【参考方案2】:

您应该从定义中删除;

【讨论】:

以上是关于我有 3 个错误:预期为 ")" ,预期为表达式,long 类型的参数与 U32 类型的参数不兼容的主要内容,如果未能解决你的问题,请参考以下文章

错误 style-loader@3.2.1:引擎“节点”与此模块不兼容。预期版本 ">= 12.13.0"。得到“10.19.0”

AVR 工作室错误“得到 0xc0,预期为 0x00”

运行“pod spec lint”时出现“错误:预期类型”错误

mypy 错误:返回值类型不兼容(得到“object”,预期“Dict [Any, Any]”)

禁止显示“预期为 '===' 而看到的是 '=='。” jslint中的错误

graphQL查询:收到错误“类型的预期值......,找到......”