インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
特定のデータ項目のアライメント方法をコンパイラーに指示します。
Linux* および macOS*: | -align [keyword[, keyword...]] -noalign |
Windows*: | /align[:keyword[, keyword...]] /noalign |
keyword |
データ項目をアライメントする方法を指示します。設定可能な値は以下のとおりです。
|
nocommons |
共通ブロックのアライメントにパディングバイトを追加しません。 |
nodcommmons |
共通ブロックのアライメントにパディングバイトを追加しません。 |
noqcommmons |
共通ブロックのアライメントにパディングバイトを追加しません。 |
nozcommmons |
共通ブロックのアライメントにパディングバイトを追加しません。 |
records |
派生型コンポーネントおよびレコード構造体フィールドを、デフォルトの自然境界上にアライメントします。 |
nosequence |
ユーザーによって設定された現在のアライメント規則にかかわらず、SEQUENCE 文で宣言された派生型コンポーネントをパックします。 |
デフォルトでは、パディングは共通ブロックには追加されませんが、構造体には追加されます。
このオプションは、一部のデータ項目をアライメントする方法を指示します。コンパイラーは、パディングバイトを追加してアライメントします。
オプション |
説明 |
---|---|
align none |
共通ブロックまたは構造体にパディングバイトを追加しないようにコンパイラーに指示します。これは noalign と同じです。 |
align arraynbyte |
配列の開始位置を n バイト境界でアライメントします。n は、8、16、32、64、128、または 256 のいずれかです。n のデフォルト値は 8 です。この開始位置のアライメントは、COMMON 文中の配列を除く、すべての配列に影響します。 配列の要素間にパディングはありません。 |
align commons |
共通ブロックのすべてのデータ項目を、必要であればパディングバイトを追加して、最大 4 バイトまで自然境界上にアライメントします。 align nocommons オプションは、共通ブロックにパディングを追加しません。この場合、COMMON 文中のデータ項目が、サイズの大きな数値データ項目から順番に指定され、最後に文字データが指定されている場合を除き、アライメントの合っていないデータが生じる可能性があります。 |
align dcommons |
共通ブロックのすべてのデータ項目を、必要であればパディングバイトを追加して、最大 8 バイトまで自然境界上にアライメントします。 align nodcommons オプションは、共通ブロックにパディングを追加しません。 |
align qcommons |
共通ブロックのすべてのデータ項目を、必要であればパディングバイトを追加して、最大 16 バイトまで自然境界上にアライメントします。 align noqcommons オプションは、共通ブロックにパディングを追加しません。 |
align zcommons |
共通ブロックのすべてのデータ項目を、必要であればパディングバイトを追加して、最大 32 バイトまで自然境界上にアライメントします。 align nozcommons オプションは、共通ブロックにパディングを追加しません。 |
align norecords |
派生型コンポーネントおよびレコード構造体のフィールドを、任意の境界上にパディングを追加せずにアライメントします。 align records オプションは、レコード構造体 (拡張機能) および SEQUENCE 文のない派生型構造体に含まれる複数のデータ項目に対し、必要であればパディングバイトを追加して自然なアライメントを行うように指定します。 |
align recnbyte |
レコードのフィールドおよび派生型のコンポーネントを、指定された境界 (n) またはそれらが自然にアライメントされる境界のうち、サイズがより小さくなる境界でアライメントします。n は、1、2、4、8、16、または 32 のいずれかです。n のデフォルト値は 8 です。このオプションを指定すると、構造体の 2 番目以降の各メンバーが、メンバーの型のサイズまたは n バイト境界のどちらか小さいほうで格納されます。例えば、prog1.f ファイルのすべての構造体と共用体に対するパック境界またはアライメント条件として、16 バイトを指定するには、次のコマンドを指定します。 ifort {-align rec16byte | /align:rec16byte} prog1.f このオプションは、共通ブロックが自然にアライメントされるか、あるいはパックされるかどうかには影響を与えません。 |
align sequence |
現在使用されているアライメント規則に基づいて、SEQUENCE 文で宣言された派生型コンポーネント (シーケンス・コンポーネント) をアライメントします。デフォルトのアライメント規則は、不整列のコンポーネントを自然境界上にアライメントします。 align nosequence オプションを指定すると、シーケンス・コンポーネントは他のアライメント規則に関係なくパックされます。align none は align nosequence を意味します。 標準規格の検証オプションを指定すると、align sequence は無視されます。 |
align all |
共通ブロック、派生型、および構造体の要素を自然にアライメントするために、必要であればパディングバイトを追加するようにコンパイラーに指示します。align dcommons、align records、align nosequence を指定します。これは、keyword なしで align を指定するのと同じです。 |
Visual Studio*: [Data (データ)] > [Structure Member Alignment (構造体メンバーのアライメント)] (/align:recnbyte)
[Data (データ)] > [Alignment of COMMON block entities (共通要素のアライメント)] (/align:[no]commons、/align:[no]dcommons、/align:[no]qcommons、/align:[no]zcommons)
[Data (データ)] > [SEQUENCE Types Obey Alignment Rules (SEQUENCE 型をアライメント規則に従わせる)] (/align:[no]sequence)
[Data (データ)] > [Default Array Alignment (既定の配列アライメント)] (/align:arraynbyte)
Eclipse*: なし
Xcode*: [Data (データ)] > [Structure Member Alignment (構造体メンバーのアライメント)] (-align rec<1,2,4,8,16,32>byte)
[Data (データ)] > [Alignment of COMMON block entities (共通要素のアライメント)] (-align [no]commons、-align [no]dcommons、-align [no]qcommons、-align [no]zcommons)
[Data (データ)] > [SEQUENCE Types Obey Alignment Rules (SEQUENCE 型をアライメント規則に従わせる)] (-align [no]sequence)
[Data (データ)] > [Default Array Alignment (既定の配列アライメント)] (-align array<8,16,32,64,128,256>byte)
align none |
Linux* および macOS*: -noalign Windows*: /noalign |
align records |
Linux* および macOS*: -align rec16byte、-Zp16 Windows*: /align:rec16byte、/Zp16 |
align norecords |
Linux* および macOS*: -Zp1、-align rec1byte Windows*: /Zp1、/align:rec1byte |
align recnbyte |
Linux* および macOS*: -Zp{1|2|4|8|16} Windows*: /Zp{1|2|4|8|16} |
align all |
Linux* および macOS*: -align commons-align dcommons-align records-align nosequence Windows*: /align:nocommons、dcommons、records、nosequence |