内核
liujun3512159
这个作者很懒,什么都没留下…
展开
-
c语言复杂代码阅读
以下内容都是从百度上找到的解说 1,(*(void (*)())0)() 第一步:void(*) (),可以明白这是一个函数指针类型。这个函数没有参数,没有返回值。 第二步:(void(*) ())0,这是将0强制转换为函数指针类型,0是一个地址,也就是说一个函数存在首地址为0的一段区域内。 第三步:(*(void(*) ())0),这是取0地址开始的一段内存里面的内容,其内容就是保存在首地址为0的一段区域内的函数。 第四步:(*(void(*) ())0)(),这是函数调用。 2,int *.原创 2022-03-06 21:16:59 · 244 阅读 · 0 评论 -
分析signal函数的原型声明void (*signal(int sig,void (*func)(int)))(int)
在ANSI标准中,signal()的声明如下: void (*signal(int sig,void (*func)(int)))(int),此函数是linux中信号处理函数的原型,由于语法晦涩,很荣幸的也出现在了《C陷阱与缺陷中》,理解的难点在于void ( *signal(xxx) )(int),这里与我们平常看到的void ( *p )(int) 函数指针的写法有差异,关键点在于要把看成*signal(xxx)整体; signal是一个函数: 1.它返回一个函数指针void (*...转载 2022-03-06 21:10:35 · 417 阅读 · 0 评论