【发布时间】:2015-03-14 10:24:10
【问题描述】:
我想比较任何数据类型,但我不知道如何使用变量或常量,例如:
if ( *(var)v > *(var)(v+sizeof(int)) )
//some instructions...
代替:
if ( *(int*)v > *(int*)(v+sizeof(int)) )
//some instructions...
其中var 可以是int*、float*、char* 或其他任何东西,v 被声明为
void* v;
【问题讨论】:
-
您要比较指针还是它们指向的值?你知道(无类型的)void 指针真正指向什么吗?
-
我想比较他们指向的值。 v 指向 int 或 float 或 structs,我知道函数调用时的类型,上面的代码在哪里。
-
别这样,演员阵容是邪恶的。如果你不明白你在做什么,他们甚至更多。如果您真的需要,请深入了解 C 的类型系统。
标签: c variables pointers casting void