在类中的local function
中声明的变量具有静态或自动的存储策略?
答案 0 :(得分:1)
"存储政策"是生命周期。它将永远是自动的。 IEEE 1800-2012的第8.6节陈述
声明为类类型一部分的方法的生命周期应是自动的。宣布一个是非法的 具有静态生命周期的类方法。
您可以将类方法声明为static
,但在该上下文中,它意味着完全不同的东西。第8.10节规定:
静态方法与具有静态生命周期的任务不同。前者指的是方法的生命周期 在类中,而后者是指任务中参数和变量的生命周期。
因此,即使没有该类的对象,也可以调用静态方法。
答案 1 :(得分:0)
类成员的local
或protected
属性对存储策略没有影响。它只会影响用于访问成员的标识符的可见性。
话虽这么说,类成员的存储策略也会影响该标识符的可见性。因此,这两个功能都可以限制访问,但原因各不相同。
例如,您永远不能从声明它的范围之外访问自动变量。无论该范围是类方法还是简单任务都无关紧要。并且该范围的默认生命周期无关紧要。
相反,如果在作用域中声明静态变量,则可以从该作用域外部访问该变量,但需要考虑所有其他可见性规则。