(void *)和(void(*)(argument type))强制转换有什么区别?

杨金赫
void funcPtr(int a);

int main(){
   int k=1;
   void (*funcPtr2)(int);

   funcPtr2 = (void*)(funcPtr);
   // funcPtr2 = (void(*)(int))(funcPtr);

   (*funcPtr2)(k);
   return 0;
}

void funcPtr(int a){
   printf("%d", a);
}

(void*)(void(*)(argument type)函数指针类型转换之间有什么区别

结果,它不会发生警告。

错了吗 关于(void*)类型转换

聚丙烯

错了吗 关于(void *)类型转换

是的。

C标准不允许将函数指针转换为对象指针或在它们之间进行赋值。如果您提高了编译器警告级别,则可能会收到警告/错误,例如使用以下命令进行编译:

gcc -Wall -Wextra -pedantic-errors -std=c11 file.c

我不确定为什么您要考虑转换函数指针。如果函数指针类型与函数匹配,则只需为其分配:

 funcPtr2 = funcPtr;

在旁边:

您可以像使用函数一样使用函数指针:

 funcPtr2(k);

并将标准原型用于main

int main(void)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

void()和void {}有什么区别?

来自分类Dev

void *和*(void **)有什么区别?

来自分类Dev

转换,强制转换和强制转换有什么区别?

来自分类Dev

转换,强制转换和强制转换有什么区别?

来自分类Dev

打字稿中的Never和void有什么区别?

来自分类Dev

decltype(void())和decltype(void {})之间的区别

来自分类Dev

void(int)和void(*)(int)之间的区别

来自分类Dev

C ++中void(*)()和void(&)()之间的区别

来自分类Dev

(void)obj和void(obj)之间的区别

来自分类Dev

Qt5中的void QSqlQuery :: clear()和void QSqlQuery :: finish()有什么区别?

来自分类Dev

Java中的void f(Class c)和void f(Class <?> c)之间有什么区别吗?

来自分类Dev

public <T extended Animal> void addAll(List <T>动物)和public void addAll(List <Animal>动物)有什么区别?

来自分类Dev

NSData和void之间的转换*

来自分类Dev

什么是void []?

来自分类Dev

Data.Void.absurd与有什么区别?

来自分类Dev

void proc和带丢弃的void proc之间的区别

来自分类Dev

self.completionBlock = ^ {}和(void)(^ completionBlock)(void)= ^ {}之间的区别

来自分类Dev

decltype(...,void())和void_t之间的区别

来自分类Dev

C ++中void和非void函数之间的区别

来自分类Dev

C 中的 main 函数,有 void 和没有 void

来自分类Dev

C:为什么&(void *)和void **不兼容?

来自分类Dev

像(void **)&device_array这样的转换有什么问题?

来自分类常见问题

关于类变量,向上转换和向下转换有什么区别

来自分类Dev

比例转换和坐标系转换有什么区别

来自分类Dev

强制转换为“ void”到底有什么用?

来自分类Dev

快速强制转换和强制指针有什么区别?

来自分类Dev

什么是void(* op)(T&)和void(* op)(T&,void *)?

来自分类Dev

typeof undefined和void之间的JavaScript区别?

来自分类Dev

(void *)指针和&pointer之间的区别?

Related 相关文章

  1. 1

    void()和void {}有什么区别?

  2. 2

    void *和*(void **)有什么区别?

  3. 3

    转换,强制转换和强制转换有什么区别?

  4. 4

    转换,强制转换和强制转换有什么区别?

  5. 5

    打字稿中的Never和void有什么区别?

  6. 6

    decltype(void())和decltype(void {})之间的区别

  7. 7

    void(int)和void(*)(int)之间的区别

  8. 8

    C ++中void(*)()和void(&)()之间的区别

  9. 9

    (void)obj和void(obj)之间的区别

  10. 10

    Qt5中的void QSqlQuery :: clear()和void QSqlQuery :: finish()有什么区别?

  11. 11

    Java中的void f(Class c)和void f(Class <?> c)之间有什么区别吗?

  12. 12

    public <T extended Animal> void addAll(List <T>动物)和public void addAll(List <Animal>动物)有什么区别?

  13. 13

    NSData和void之间的转换*

  14. 14

    什么是void []?

  15. 15

    Data.Void.absurd与有什么区别?

  16. 16

    void proc和带丢弃的void proc之间的区别

  17. 17

    self.completionBlock = ^ {}和(void)(^ completionBlock)(void)= ^ {}之间的区别

  18. 18

    decltype(...,void())和void_t之间的区别

  19. 19

    C ++中void和非void函数之间的区别

  20. 20

    C 中的 main 函数,有 void 和没有 void

  21. 21

    C:为什么&(void *)和void **不兼容?

  22. 22

    像(void **)&device_array这样的转换有什么问题?

  23. 23

    关于类变量,向上转换和向下转换有什么区别

  24. 24

    比例转换和坐标系转换有什么区别

  25. 25

    强制转换为“ void”到底有什么用?

  26. 26

    快速强制转换和强制指针有什么区别?

  27. 27

    什么是void(* op)(T&)和void(* op)(T&,void *)?

  28. 28

    typeof undefined和void之间的JavaScript区别?

  29. 29

    (void *)指针和&pointer之间的区别?

热门标签

归档