将值与 void* 进行比较

标签 c debugging pointers

我想比较一个值,传给void*,可以是char/short/long类型和常量long类型。 但是这段代码不起作用。我不明白。

void compar (void* p_value) {
    if (*p_value > CONST_MAX) {
        *p_value = CONST_MAX;

     } else if( *p_value<CONST_MIN ) {
         *p_value = CONST_MIN;
     }
}

谢谢。

最佳答案

最好将函数签名更改为:

#define TYPE_INT 1
#define TYPE_LONG 2

void compar (void* p_value, int type){

然后根据类型,将传递的“事物”(或指向的事物)转换为类型并进行比较。

关于将值与 void* 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44242496/

相关文章:

c++ - 为什么在这个例子中有 "for(auto& x : v)"而不是 "for(auto x : &v)"?

c - 仅 GET 命令正文,缺少 header

c - 使用 FMOD 库时出现问题

c - 在 C 中使用 for 循环绘制图案

debugging - Dialogflow Flutter Chatbot - NoSuchMethodError : The method '[]' was called on null

java - 引用麻烦

c - 为什么我不能使用 "fgets"将字符串读取到我的结构元素中?

c - C 中函数的定义

c - 发生崩溃时查看堆栈

windows - 什么是适用于 Windows 的优秀开源调试器和内存分析器?