我对C还是很陌生,因此无法成功理解以下代码:
#include <signal.h> //1
typedef void (*sighandler_t)(int); //2
sighandler_t signal (int signo, sighandler_t handler); //3
第3行是:
signal是一个带有2个参数的函数,一个是整数,另一个是sighandler_t,并返回sighandler_t?
但是sighandler_t是什么?
它是一个指向函数的指针,其中所指向的函数是一个接受int类型的参数并返回void的函数吗?
您能举一个我如何使用它的例子吗?
线
typedef void (*sighandler_t)(int);
定义一个新类型sighandler_t
,该类型是指向一个函数的指针,该函数需要一个类型的参数int
并且不返回任何值。
线
sighandler_t signal (int signo, sighandler_t handler);
声明signal
一个函数,该函数需要其类型的第一个参数和类型的int
第二个参数,sighandler_t
并返回一个type sighandler_t
。
sighandler_t
是用户定义的类型,它最终指向一个函数,该函数期望一个类型的参数int
并且不返回任何值。
没有typedef
它会被写成
void (*signal(int signo, void (*handler)(int)))(int);
这更令人困惑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句