《C陷阱和缺陷》读书笔记(2)- 语法”陷阱“
词法、语法构成语言的一个基本条件。光有一个个的单词符号是不够的,这些符号的不同组合可以表达不同的含义。 例如,声明是什么,表达式什么,语句是什么,程序是什么等等。
理解函数声明
看看下面一个语句:
|
|
乍一看到这个语句,肯定当场吓尿!啥鬼玩儿意!
别着急! 慢慢来,庖丁解牛,让我们看看作者这个大牛是怎么来剖开其五脏六腑的?
-
变量声明
- 简单变量声明:
float f;
- 也可以对变量名加上括号,
float ((f));
- 变量指针:
float *pf;
- 简单变量声明:
-
函数声明
-
简单的函数声明:
float ff()
-
复杂的函数声明:
float ff(float)
-
指针形式:
float (*pff)();
// 为什么这里需要加上括号呢?因为括号的优先级高于
*
,float *pff();
中,()
优先和pff
结合, 表示的是函数pff()
, 返回值是为指向浮点数指针。(*pff)
表示一个指针,(*pff)()
表示函数指针,float (*pff)();
表示返回值为float
的函数指针。
-
-
函数调用
- 直接函数调用:
ff();
- 指针函数调用:
(*pff)()
- 直接函数调用: