将常量指针作为参数传递给另一个函数的问题

时间:2018-10-04 03:08:53

标签: c pointers parameters arguments

所以我正在编写的某些代码有问题。这段代码的简化版本是这样的:

typedef unsigned int Variable_one;

int original_function(Variable_one *const v1){
   if (validation(v1)) {
      /*body*/
   }
   /* more body */
}

int validation(Variable_one v1) {
   if (v1 == NULL) {
      /* even more body */
   }
}

我知道Variable_one是一个无符号的int,但是我必须执行的检查是是否将v1传递到验证函数中是Null值。每当我尝试这样做,即使我这样做

if (validation(*v1))

由于编译器设置,我仍然遇到相同的错误,即“指针与整数之间的比较”。至于修改函数签名或Variable_one,由于项目的限制,我不能。

1 个答案:

答案 0 :(得分:0)

您需要将正确的数据类型传递给正确的参数,然后使用*询问该指针的值。

您在这里;

int validation(Variable_one *const v1) 
{ 
if (*v1 == NULL) { /* even more body */ }
}