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