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

标签 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 是一个无符号整数,但我必须执行的检查是传递到验证函数的 v1 是否为 Null 值。每当我尝试这样做时,即使我这样做

if (validation(*v1))

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

最佳答案

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

给你;

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

关于c - 将常量指针作为参数传递给另一个函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638404/

相关文章:

c - 使用 gcc 编译时,Tcl 解释器 undefined reference 错误

c - 我应该为我的应用程序使用进程还是线程?

c - 这两个指针有何不同?

c - 关于 sizeof() 和分配的内存

无法修改 malloc() 分配的地址处的值

c++ - 函数参数的销毁顺序是什么?

c - 测试多个unsigned int的减法

c++ - 使用 socket recv 函数读取 stdin 上的流

java - setBytes 的参数索引有什么作用

c++ - POD的默认析构函数是静态的吗?