如果我有一个功能:
void G(int f){
printf("Hello");
}
Run Code Online (Sandbox Code Playgroud)
(我知道这个函数没有意义的参数,但我只是为了问题)
即使没有定义并且没有在其中使用,"int f"在函数内部是否可见?
即使它没有定义
是不对的.它确实有一个定义,它就在函数声明中.你是否使用它是完全不同的事情.
尽管如此,你所使用的术语,可见性,对于初学者来说是可以的,但语言规范(以及像我这样使用它的语言律师)更喜欢术语范围.
变量的范围包含在(对于C11)中6.2.1 Scopes of identifiers./4该部分的Stanza 表示(我的重点):
如果声明标识符的声明符或类型说明符出现在块内或函数定义中的参数声明列表中,则标识符具有块作用域,该作用域终止于关联块的末尾.
这意味着变量在函数块的末尾一直是"可见的"(假设你没有通过在内部范围中引入另一个同名的变量来遮蔽它).
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |