我有一个很长的程序,当我尝试运行它时,它没有编译并返回255,总会出现两个警告:
2015-01-07 19:42:52
搜索后我发现** p_ch_beg参数可能会导致问题(如果我正确),但我不知道该怎么做。请帮助纠正下面的脚本
warning: pointer targets in passing argument 3 of 'unpack_code' differ in signedness [-Wpointer-sign]
In file included from read_chn.c:3:0:
read_chn.h:104:5: note: expected 'int *' but argument is of type 'unsigned int *'
答案 0 :(得分:0)
搜索后我发现** p_ch_beg参数可能导致问题(如果我正确的话)
您的诊断不正确。 p_ch_beg
是参数1.您的警告消息告诉您问题是参数3:
警告:指针传递参数3 ' unpack_code'签名不同
参数3是int *p_code
。警告告诉你的是,这个参数应该是指向 int
的指针,但你指的是指向 unsigned int
的指针而不是。
您有两种方法可以解决此问题。选择一个:
bit_buffer
的类型从unsigned int
数组更改为int
数组。int *p_code
更改为unsigned int *p_code
。 P.S。在您的示例中,参数2也不正确。 &par> chbit
将评估为int
(如果您很幸运;它是技术上未定义的行为),但参数类型为int *
(指向int
的指针})。您的意思是&par->chbit
吗?