C 言語と C++ 言語間での参照の受け渡し

C 言語と C++ 言語間で参照を受け渡すには、extern "C" を使用します。

Example 29. C++ 関数の定義

extern "C" int cfunc(const int&);
// C++  extern "C" int cppfunc(const int& r) から呼び出される C 関数の宣言 { 
// C から呼び出される C++ 関数の定義
    return 7 * r;
}
int f() {
    int i = 3;
    return cfunc(i);    // ポインタを 'i' に渡す
}

C 関数で、extern を使用して C++ 参照を定義します。

Example 30. C 関数の定義

extern int cppfunc(const int*);
/* C から呼び出される C++ 関数の宣言 */
int cfunc(const int *p) {
/* C++ から呼び出される C 関数の定義 */
    int k = *p + 4;
    return cppfunc(&k);
}

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