保护全球数据常量
而且挥发性
类型限定符
在C中,使用类型限定符常量
防止应用程序中的代码向变量分配新值。在外部参与者(例如,硬件设备)可以操作变量值的应用程序中,可以使用关键字挥发性
防止编译器以损害变量值完整性的方式优化程序集代码。你也可以用挥发性
防止编译器消除的存储常量
数据,例如具有希望在执行期间调优的值的参数。
要将限定符应用到模型中的单个数据项,包括通过使用非虚拟总线或参数结构创建的自定义结构,请直接对数据项应用适当的预定义存储类。存储类阻止了诸如默认参数的行为消除数据项的存储空间。示例请参见类型限定符.有关直接应用存储类阻止的优化的信息,请参见生成的代码如何存储内部信号,状态和参数数据.
如果预定义的存储类不能满足您的需求,您可以创建自己的自定义存储类。若要使自定义存储类应用限定符,请在“自定义存储类设计器”中设置记忆的部分到适当的内置内存段或您创建的内存段。有关更多信息,请参见使用自定义存储类设计器创建存储类.
默认情况下,您可以将限定符应用到模型数据的类别中,例如参数或状态。当您向模型添加块时,这些类别中的新数据项将携带您指定的限定符。有关更多信息,请参见配置数据的默认代码生成.
如果预定义的存储类不能满足您的需求,您可以使用嵌入式编码器字典创建自己的存储类。在Dictionary中,对于新的存储类,选择下面的适当复选框限定符.有关更多信息,请参见创建代码定义以在代码映射编辑器中使用.
维护常量
入口点函数参数的正确性
当外部代码调用生成的入口点函数并通过时常量
数据通过一个实参(形式形参)的函数,在函数定义中做出相应的实参常量
,自定义执行(步骤)入口点功能接口。
要配置模型的步骤入口点功能接口,请参见为单个步骤函数配置名称和参数.
配置a的步进点功能接口金宝app仿真软件的功能块,看为Simulink函数和函数调用块配置入口点函数接口金宝app.
将Volatile数据传递给生成的函数时,结果不正确或行为未定义
生成的代码可以定义和调用模型入口点函数以外的函数。例如,您可以配置原子子系统,使其作为单独的函数出现在代码中。此外,查找表块,例如一天的查找表,通常产生单独的效用函数。
当生成的代码定义了具有实参(形式形参)的函数时,函数定义并不适用挥发性
的论点。因此,当其他生成的代码或您的外部代码调用该函数并传递一个volatile变量作为参数值时,被调用的函数会隐式丢弃volatile变量。
如果应用程序在执行被调用的函数时,volatile数据的值发生了变化,则该函数可能产生不正确的结果或未定义的行为。特别是,对于为校准准备的查找表数据,通过应用常量
而且挥发性
,确保在应用程序执行查找实用程序时没有校准数据。