我想比较一个值,传给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/