C 将常量指针作为参数传递给另一个函数时出现问题

C 将常量指针作为参数传递给另一个函数时出现问题,c,pointers,parameters,arguments,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 m

所以我在写一些代码时遇到了问题。此代码的简化版本如下所示:

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 */
   }
}
我知道变量_one是一个无符号int,但我必须执行的检查是,传递给验证函数的v1是否为空值。每当我尝试这个,即使我做了

if (validation(*v1))

我仍然会遇到相同的错误(由于编译器设置),即“指针和整数之间的比较”。由于项目的限制,我无法修改函数签名或变量。\u one。

您需要将正确的数据类型传递给正确的参数,然后使用*

给你

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

在需要非指针的位置传递指针
Variable\u one
是一个可怕的类型名称……我可以修改每个类型的主体,包括函数调用。然而,函数签名是不可触及的。如果我不需要传递指针,我如何通过调用验证函数来验证v1是否是一个合适的值?至于名称,我只是为了示例而使用它。我的代码的命名要恰当得多。