c缺陷与陷阱笔记-第二章 语法陷阱

时间:2021-05-15 14:22:08

1。函数的调用和番薯返回值是函数指针的声明

  定义一个函数指针,例如  int (*fp)(float),这个函数的返回值是Int,参数是1个float类型,调用这个函数的方法是 (*fp)(),还有fp()是对前面的简写

  定义一个函数返回函数指针,典型的 是signal函数,用typedef它应该是这样定义的

  typedef void (*FUNC)(int);

  FUNC signal(int,FUNC)

  摊开写就是  void (*)(int)  signal(int , void (*)(int)) -------> void (*(signal(int,void (*)(int))))(int)

  (*(void (*)())0)(),就是把整数0转换成void (*)()类型的函数指针,然后 (*p)()调用这个地址为0的函数

练习2-1.数组初始化列表允许多余的逗号

  int days[]={1,2,3,4,5,}

  如果把上面规范些,int days={1,2,

                 3,4,

                 5,}可以看到这样更方便处理