| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
MicrosoftやBorlandのC/C++コンパイラー、およびBorlandのDelphiコンパイラーなどで対応している。
変数の幾つかは、先頭(左)から幾つかをレジスター経由で渡す。
引数は、可能な範囲でレジスターで渡される(従って速い)。
x86系はレジスターが少なく、現実には変数のうち2〜3個しかレジスター渡しができないため、fastcallと言うほどの高速化が期待できるのかどうかは謎である。
なお、引数が浮動小数点数または構造体型の場合にはレジスターは使われない。
Microsoft系のC/C++では、次のような特徴がある。
変数の型の特定が必要なため、__fastcallの関数はプロトタイプ宣言が必須である。
Borland系のC/C++/Delphiでは、次のような特徴がある。
変数の型の特定が必要なため、__fastcallの関数はプロトタイプ宣言が必須である。
つまり、Microsoftの__fastcallとBorlandの__fastcallは互換性がないため、__msfastcallというキーワードが用意されている。
Delphiの場合は標準で__fastcallである。Borland C++BuilderでVCL(Visual Component Library)を使った時は__fastcallだらけになるが、これはDelphiとの互換性のためである。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます