SA0016:構造のギャップ
現在設定されているターゲットシステムのアライメント要件によって引き起こされる構造または機能ブロックのギャップを特定します。可能であれば、構造要素を再配置するか、ダミー要素で埋めることによって、ギャップを削除する必要があります。これが不可能な場合は、プラグマを介して影響を受ける構造のルールを使用できます analysis
非アクティブ化します。
理由:プラットフォームごとに配置要件が異なるため、このような構造のメモリには異なるレイアウトが存在する可能性があります。その後、コードはプラットフォームに応じて異なる動作をする可能性があります。
重要度:低
例 29. 例
TYPE Unpadded_Structure : STRUCT xTest : BOOL; iTest : INT; // SA0016 byTest : BYTE; wTest : WORD; END_STRUCT END_TYPE
PROGRAM PLC_PRG VAR myStruct : Unpadded_Structure; END_VAR
myStruct.iTest := 0;
での出力 メッセージ ビュー:
SA0016: 構造体「Unpadded_Structure」はパディングする必要があります (pack-mode=8)