**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
- [声明](#%E5%A3%B0%E6%98%8E)
- [优先级](#%E4%BC%98%E5%85%88%E7%BA%A7)
- [typedef](#typedef)
- [导航](#%E5%AF%BC%E8%88%AA)
# 声明
C语言中,对象的声明形式与它的使用形式尽可能相似。
`const int * ptr` 与`int const * ptr`相同。
合法的声明存在限制条件:
1. 函数的返回值不能是一个函数
2. 函数的返回值不能是一个数组
3. 数组里面不能有函数,`foo[]()`
以下法则是合法的
1. 函数返回值是一个函数指针
2. 函数返回值是一个数组指针
3. 数组里面可以有函数指针
4. 数组里面可以有其他数组
struct 结构标签(可选){
类型1 标识符1
}变量定义(可选)