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