Fortran、C/C++、および MASM (Windows*) でのプロシージャー名の処理について次に示します。MASM では、CASEMAP: ALL オプションが使用されている場合、この表は適用されません。
言語 |
属性 |
変換後の名前 |
.OBJ ファイル中の名前の大文字と小文字 |
---|---|---|---|
Fortran |
cDEC$ ATTRIBUTES C |
name (Linux*) _name (Windows*) _name (Mac OS* X) |
すべて小文字 |
Fortran (Windows*) |
cDEC$ ATTRIBUTES STDCALL |
_name@n |
すべて小文字 |
Fortran |
default |
name_ (Linux*) _name (Windows*) _name_ (Mac OS* X) |
すべて大文字 |
C |
cdecl (デフォルト) |
name (Linux*) _name (Windows*) _name (Mac OS* X) |
大文字と小文字を区別する |
C (Windows* のみ) |
__stdcall |
_name@n |
大文字と小文字を区別する |
C++ |
デフォルト |
name@@decoration (Linux*) _name@@decoration (Windows*) __decorationnamedecoration (Mac OS* X) |
大文字と小文字を区別する |
Linux、Mac OS X アセンブリー |
デフォルト |
name (Linux*) _name (Mac OS* X) |
大文字と小文字を区別する |
MASM (Windows*) |
C (PROTO 宣言および PROC 宣言) |
_name |
大文字と小文字を区別する |
MASM (Windows*) |
STDCALL (PROTO 宣言および PROC 宣言) |
_name@n |
大文字と小文字を区別する |
上記の表で使用されている記号の意味は、次のとおりです。
先頭の下線 ( _name など) は、IA-32 アーキテクチャー・ベースの Windows* システムでのみ使用されます。
@n は、10 進数表記のスタックスペースを表します。これは、IA-32 アーキテクチャー・ベースの Windows* システム上でのみパラメーターで占有されます。
例えば、関数が C で次のように宣言されているとします。
extern int __stdcall Sum_Up( int a, int b, int c );
各整数は 4 バイトを占有しているため、IA-32 アーキテクチャー・システムで .OBJ ファイルに格納されるシンボル名は次のようになります。
_Sum_Up@12
インテル® 64 アーキテクチャー・システムで .OBJ ファイルに格納されるシンボル名は次のようになります。
Sum_Up
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。