使用前的C声明

S.J*_*.J. 2 c

C中的所有标识符在使用之前都需要声明,但是我找不到它在C99标准中表示的位置.

我认为它也指宏定义,但只定义了宏扩展顺序.

Chr*_*oph 5

C99:TC36.5.1§2,脚注79明确说明:

因此,未声明的标识符违反了语法.

结合6.2.1§5:

除非另有明确说明,否则它[ 即标识符 ]是指相关名称空间中的实体,其声明在标识符出现时可见.

和§7:

[...]任何其他标识符的范围都在其声明者完成之后开始.