C++ からの C の呼び出し

以下の例は、C++ から呼び出される C 関数です。

Example 17. C 言語における関数の定義

struct S {
    int i;
};
void cfunc(struct S *p) {
/* C++ から呼び出される C 関数の定義 */
    p->i += 5;
}

この C 関数を C++ から呼び出すには、extern "C" を使用して宣言します。

Example 18. C++ 言語からの C 関数の呼び出し

struct S {            // ベースクラスまたは
                      // 仮想関数が含まれていない
    S(int s) : i(s) { }
    int i;
}; extern "C" void cfunc(S *);
// C++ から呼び出される C 関数を宣言する
int f(){
    S s(2);           // 's' を初期化する
    cfunc(&s);        // 'cfunc' を呼び出して 's' を変更できるようにする
    return s.i * 3;
}

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0471EJ
Non-ConfidentialID081711