语法缺陷
理解函数声明
任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符(declarator)。
声明符从表面上看与表达式有些类似,对它求值应该返回一个声明中给定类型的结果,最简单的声明就是单个变量。
float a ,g ; //返回类型 表达式;
//这个声明的含义是:当对其求值时,表达式f和g的类型为浮点数类型(float)
//因为声明符和表达式相似,所以我们也可以在声明符中任意使用括号。
float ((f));
//这个声明的含义是:当对其求值时,((f))的类型为浮点类型,因此可以推知,f也是浮点类型
//同样的逻辑也适用于函数与指针类型的声明
float ff();
//这个声明的含义是:表达式ff()求值结果是一个浮点数,ff为一个返回值为浮点类型的函数。
//类似的,这个声明的含义是*pf是一个浮点数,也就是说pf是一个指向浮点数的指针。
float *pf;
//以上这些形式在声明中可以组合起来,就像在表达式中进行组合一样。因此
//表示*g()
float *g(),(*h)();