Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
System verilog 方法上的local关键字是否意味着自动存储?_System Verilog - Fatal编程技术网

System verilog 方法上的local关键字是否意味着自动存储?

System verilog 方法上的local关键字是否意味着自动存储?,system-verilog,System Verilog,类中的局部函数中声明的变量有哪些存储策略,静态的还是自动的?存储策略是生命周期。它总是自动的。IEEE 1800-2012第8.6节规定 声明为类类型一部分的方法的生存期应是自动的。申报财产是违法的 使用静态生存期初始化方法 您可以将类方法声明为静态的,但在该上下文中,它的含义完全不同。第8.10节规定: 静态方法不同于具有静态生存期的任务。前者是指方法的生命周期 类中,后者指任务中参数和变量的生存期 因此,即使不存在该类的对象,也可以调用静态方法。类成员的local或protected属性对存

类中的
局部函数
中声明的变量有哪些存储策略,静态的还是自动的?

存储策略是生命周期。它总是自动的。IEEE 1800-2012第8.6节规定

声明为类类型一部分的方法的生存期应是自动的。申报财产是违法的 使用静态生存期初始化方法

您可以将类方法声明为
静态的
,但在该上下文中,它的含义完全不同。第8.10节规定:

静态方法不同于具有静态生存期的任务。前者是指方法的生命周期 类中,后者指任务中参数和变量的生存期


因此,即使不存在该类的对象,也可以调用静态方法。

类成员的
local
protected
属性对存储策略没有影响。它只影响用于访问成员的标识符的可见性

也就是说,类成员的存储策略也会影响该标识符的可见性。因此,这两种功能都可以限制访问,但原因不同

例如,您永远不能从声明自动变量的范围之外访问它。该范围是类方法还是简单任务并不重要。而且该范围的默认生存期是多少并不重要

相反,如果在范围内声明静态变量,则可以从该范围之外访问该变量,但需要考虑所有其他可见性规则。