Mój program C++ musi korzystać z zewnętrznej biblioteki C. Dlatego używam składniProgram C++ używający nagłówków biblioteki C rozpoznaje "to" jako słowo kluczowe. Zewnętrzny błąd "C"?
extern "C"
{
#include <library_header.h>
}
dla każdego modułu muszę korzystać.
Do tej pory działało dobrze. Moduł używa nazwy w przypadku niektórych zmiennych w jednym z plików nagłówkowych. bibliotece C Sam jest kompilacją dobrze, bo z tego co wiem, tonigdy nie było kluczowe w C
Ale mimo mojego korzystania z extern „C” składni, jestem uzyskiwanie błędy z mojego programu C++, gdy dołączę ten plik nagłówkowy.
Gdybym przemianować każdy ten w tym pliku nagłówka C biblioteki z czymś _this, wszystko wydaje się działać poprawnie.
Pytanie brzmi:
nie Jeżeli extern „C” składnia być wystarczające dla zapewnienia zgodności przynajmniej na poziomie składni dla pliku nagłówka? Czy to jest problem z kompilatorem?
Całe "extern" C "" mówi kompilatorowi, aby nie wykonywał [mangling nazw] (http://en.wikipedia.org/wiki/Name_mangling). –
http://stackoverflow.com/q/1041866/1147772 – Drax
@JoachimPileborg - "extern" C "' mówi o użyciu manglingu C, co zwykle oznacza poprzedzanie podkreślenia. –