猿问

怎么理解 void* (*start_routine)(void *)?

怎么理解 void* (*start_routine)(void *)


炎炎设计
浏览 941回答 3
3回答

红颜莎娜

你的问题没有错误。你定义了一个函数指针。名字叫 start_routine 。这个函数的返回值是void *(一个指针)参数是void *(一个指针)一般这种写法最好用typedef void* (*start_routine)(void *)然后用start_routine当作一种类型来使用。如:start_routine pfoo;调用的时候:*pfoo(p);

海绵宝宝撒

我认为是一个叫start_routine的函数指针,指向一个以void*指针类型为参数,返回值为void*指针类型的函数

慕虎7371278

这是一个指向形参为void*类型,返回类型为void*类型的函数的指针,指针名是start_routine。调用的时候应该是(*pfoo)(p)或者pfoo(p),因为函数调用优先级比解引用高,*pfoo(p)等价于*(pfoo(p)),是对函数的返回值解引用了。
随时随地看视频慕课网APP
我要回答