edv:prg:extern_linkage_und_c_language_linkage
Extern linkage und C language linkage
Wenn man C und C++ in einem Programm gleichzeitigt verwendet, muss man einiges beachten. C++-Funktionen, die aus den C-Funktionen erreichbar sein müssen, sollen mit der C-Bindung deklariert werden.
Dabei sollte man beachten, dass folgenden 2 Beispiele nicht das gleiche bedeuten:
extern "C" void hello() { std::cout << "hello\n"; }
Das war eine Deklaration mit extern linkage und mit C language linkage.
extern "C" { void hello() { std::cout << "hello\n"; } }
Und das war eine Deklaration nur mit C language linkage.
Die beiden Beispiele unten sind dagegen equivalent:
extern "C" int foo; extern "C" void bar();
…und:
extern "C" { extern int foo; extern void bar(); }
Quelle: http://tldp.org/HOWTO/C++-dlopen/thesolution.html
Stand: 30.08.2016
— : Jürgen Kreick
EOF
edv/prg/extern_linkage_und_c_language_linkage.txt · Zuletzt geändert: 2020/01/11 01:23 von 127.0.0.1