Co dokładnie robi wstawianie extern "C"do kodu C ++? Na przykład: extern "C" { void
Co dokładnie robi wstawianie extern "C"do kodu C ++? Na przykład: extern "C" { void
Pracuję nad projektem, który ma dużo starszego kodu C. Zaczęliśmy pisać w C ++ z zamiarem ostatecznej konwersji starszego kodu. Jestem trochę zdezorientowany co do interakcji między C i C ++. Rozumiem, że poprzez owinięcie C kodu z extern "C"C ++ kompilator nie będzie Magiel C pseudonimów, ale nie...
Dlaczego potrzebujemy: extern "C" { #include <foo.h> } Konkretnie: Kiedy powinniśmy go używać? Co się dzieje na poziomie kompilatora / konsolidatora, co wymaga od nas użycia tego? W jaki sposób kompilacja / linkowanie rozwiązuje problemy, które wymagają od nas...
Niedawno przeprowadziłem wywiad i zadałem jedno pytanie, jakie jest zastosowanie extern "C"w kodzie C ++. Odpowiedziałem, że jest to użycie funkcji C w kodzie C ++, ponieważ C nie używa zniekształcania nazw. Zapytano mnie, dlaczego C nie używa przekłamywania nazwisk i szczerze mówiąc, nie mogłem...
Mam funkcję C, którą chciałbym wywołać z C ++. Nie mogłem użyć extern "C" void foo()podejścia typu „ ”, ponieważ funkcja C nie została skompilowana przy użyciu g ++. Ale kompiluje się dobrze przy użyciu gcc. Jakieś pomysły, jak wywołać funkcję z C ++?
Wiem to. Wywołanie funkcji C z C ++: Gdyby moja aplikacja była w C ++ i musiałbym wywołać funkcje z biblioteki napisanej w C. Wtedy bym użył //main.cpp extern "C" void C_library_function(int x, int y);//prototype C_library_function(2,4);// directly using it. Nie zmieniłoby to nazwy,...