ホームページ バックエンド開発 C++ C++ の関数呼び出し規則は何ですか?

C++ の関数呼び出し規則は何ですか?

Apr 12, 2024 pm 01:51 PM
linux c++ typedef 関数呼び出し規約

C の呼び出し規則は、cdecl、fastcall、thiscall、stdcall など、関数の引数の受け渡し方法と値の戻り方を定義します。実際には、stdcall 呼び出し規則を使用して、DLL 内の関数をロードして呼び出すことができます。

C++ 中函数调用约定有哪些?

C 関数呼び出し規約

C では、呼び出し規約は、関数への引数の受け渡し方法と戻り方を定義します。呼び出し規約が異なると、パフォーマンス、メモリ使用量、コードの移植性の点で異なるトレードオフが生じます。

共通の呼び出し規則

  • cdecl (stdcall とも呼ばれます): Windows と Linux に適用され、パラメーターは右から右にプッシュされます。左スタック、左から右にポップします。
  • fastcall: Windows でのみ使用され、最初の 2 つのパラメーターはレジスターを介して渡され、他のパラメーターはスタックにプッシュされます。
  • thiscall: メンバー関数のオブジェクト指向プログラミングで使用される this ポインターは、最初のパラメーターとしてレジスターを介して渡されます。
  • stdcall: cdecl と似ていますが、Windows スタイルの名前装飾を使用します。

実践的なケース

次の C コードは、関数を呼び出すための stdcall の使用法を示しています。

#include <windows.h> // 只适用于 Windows

typedef void (WINAPI *pfnPrintString)(const char*);

int main()
{
    // 加载 DLL 并获取函数指针
    HMODULE hDll = LoadLibrary("mydll.dll");
    pfnPrintString PrintString = (pfnPrintString)GetProcAddress(hDll, "PrintString");

    // 调用函数,传递参数
    PrintString("Hello, world!");

    // 卸载 DLL
    FreeLibrary(hDll);

    return 0;
}
ログイン後にコピー

この例では、stdcall は次のとおりです。呼び出しに使用される 慣例として、DLL から PrintString 関数をロードして呼び出します。

以上がC++ の関数呼び出し規則は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

パフォーマンスレース:ゴラン対c パフォーマンスレース:ゴラン対c Apr 16, 2025 am 12:07 AM

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

vscodeで中国モードを切り替える方法 vscodeで中国モードを切り替える方法 Apr 15, 2025 pm 11:39 PM

vs中国モードを切り替えるコード:設定インターフェイスを開き(Windows/Linux:Ctrl、MacOS:CMD、)[エディター:言語]設定を検索します。ドロップダウンメニューで[中国語]を選択します。

Linuxの主な目的は何ですか? Linuxの主な目的は何ですか? Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

VSCODE前の次のショートカットキー VSCODE前の次のショートカットキー Apr 15, 2025 pm 10:51 PM

VSコードワンステップ/次のステップショートカットキー使用法:ワンステップ(後方):Windows/Linux:Ctrl←; macOS:CMD←次のステップ(フォワード):Windows/Linux:Ctrl→; macOS:CMD→

vscodeの使用方法 vscodeの使用方法 Apr 15, 2025 pm 11:21 PM

Visual Studio Code(VSCODE)は、Microsoftが開発したクロスプラットフォーム、オープンソース、および無料のコードエディターです。軽量、スケーラビリティ、および幅広いプログラミング言語のサポートで知られています。 VSCODEをインストールするには、公式Webサイトにアクセスして、インストーラーをダウンロードして実行してください。 VSCODEを使用する場合、新しいプロジェクトを作成し、コードを編集し、コードをデバッグし、プロジェクトをナビゲートし、VSCODEを展開し、設定を管理できます。 VSCODEは、Windows、MacOS、Linuxで利用でき、複数のプログラミング言語をサポートし、マーケットプレイスを通じてさまざまな拡張機能を提供します。その利点には、軽量、スケーラビリティ、広範な言語サポート、豊富な機能とバージョンが含まれます

vscode setting中国のチュートリアル vscode setting中国のチュートリアル Apr 15, 2025 pm 11:45 PM

VSコードは、ステップに従うことで完了することができる中国の設定をサポートしています。設定パネルを開き、「ロケール」を検索します。 「locale.language」を「zh-cn」(単純化された中国人)または「zh-tw」(伝統的な中国語)に設定します。設定を保存し、コードを再起動します。設定メニュー、ツールバー、コードプロンプト、およびドキュメントが中国語で表示されます。ファイルタグ形式、エントリの説明、診断プロセス言語など、他の言語設定もカスタマイズできます。

vscodeに複数のコメント行を入力する方法 vscodeに複数のコメント行を入力する方法 Apr 15, 2025 pm 11:57 PM

vsコードマルチラインコメントのメソッドは次のとおりです。1。ショートカットキー(Ctrl K CまたはCMD K C); 2。コメントシンボル( / /)を手動で追加します。 3。メニュー( "コメントブロック"); 4.拡張機能を使用します。 5。Recursiveコメント( /* /)およびブロックコメント({ /および /})。マルチラインのコメントは、コードの読みやすさと保守性を改善するのに役立ちますが、過剰使用を避ける必要があります。

See all articles