1
5
只有指向对象(即,不是函数)的指针才能转换为
你的职责是:
根据标准(6.3.2.3):
所以,您要做的是定义实现。如果您的实现将其定义为可以转换
C99另外定义了类型
|
2
0
您要做的是定义实现。无法保证枚举在转换为指向void然后再转换回后具有相同的值。如果您真的需要确定,那么应该使用intptr或uintptr,而不是枚举。在被强制转换为指向void的指针并再次返回之后,它们将保证具有相同的值。 |
3
0
alok绝对正确,整数和指针之间的转换是实现定义的,因此完全不可移植。例如,如果
一个常见的习惯用法是扩展约定,这样回调将接收指向动态分配的枚举的指针,该枚举必须是空闲的。在呼叫者中:
…在回调中:
|
4
0
尽管编译器允许这样做,并且在某些情况下可能是正常的,但是您需要对对象的生命周期非常小心。 我能看到的主要问题是,除非processEvent函数与infocallback发生在同一调用链中,否则原始somestate变量可能超出范围。所以稍后当您在infocallback中引用时,void*将是未定义的。 |
ElectricRay81 · 从字符串到双精度的转换效果不好 2 年前 |
user9591123 · 转换字符串? 6 年前 |
duckkkk · C中的类型转换(降级)[关闭] 6 年前 |
MDS18 · 在构造函数中将int转换为float 6 年前 |