39053

39053



180


ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI

int main O

{

asm ("nop");

>

W tym wypadku wstawiona zostanie inst rukcja “nop’' (no operat ion), która tak naprawdę służy tylko i wyłącznie do konstruowania pętli opóźniających.

C++

Język C++ z racji swojego podobieństwa do C będzie wyjątkowo łatwy do łączenia. Piwnym utrudnieniem może bvć obiektowość języka C-M- oraz występowanie w nim przestrzeni nazw oraz możliwość przeciążania funkcji. Oczywiście nadal zakładamy, że główny program piszemy w C, natomiast korzystamy tylko z pojedynczych funkcji, napisanych w C-M. Ponieważ język C nie oferuje tego wszyst kiego, co daje programiście język C++, to musimy “zmusić’* C-M- do wyłączenia pewnych swoich możliwości, aby można było połączyć ze sobą elementy programu, napisane w dwóch różnych językach. Używa się do tego następującej konstrukcji:

extern "C" {

/• funkcje, zmienne i wszystko to, co będziemy łączyć z programem u C •/

)

W zrozumieniu teorii pomoże Ci prosty przykład: plik fl.c:

•include <stdio.h> extem int f2(int a);

int main O

<

printf C7.d\n", f2(2)); return 0;

)

oraz plik f2.q>p:

•include <iostream> using namespace std; oxtem "C" { int f2 (int a)

{

cout « "a»" « a « endl; return a*2;

>

)

Teraz oba pliki kompilujemy:

gcc fl.c -c -o fl.o g*+ f2.cpp -c -o f2.o

Przy łączeniu obu tych plików musimy jiamiętać. że język C-f-f także korzysta ze swojej biblioteki. Zatem poprawna postać polecenia kompilacji powinna wyglądać:

gcc fl.o f2.o -o program -lstdc+*

(stdc-M-    biblioteka standarilowa języka C++). Bardzo istotne jest tutaj to, abyśmy zawsze

pamiętali o extern “C, gdyż w przeciwnym razie funkcje napisane w C-M będą dla programu w C całkowicie niewidoczne.



Wyszukiwarka

Podobne podstrony:
178 ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI_f 1: pushl ‘/.ebp aovl Xesp, ‘/.ebp movl $4, Xeax /* 4 t
Rozdział 25 Łączenie zinnymi językami Programista, pisząc jakiś program ma problem z wyborom
Terapia rodzin Namysłowska88 180 Rozdział 15 na wzory relacyjne powtarzające sie przez generacje,
134 ROZDZIAŁ 18. SA PISY int main(void) { char napisl[80] - "hello char *napis2 ■
Jacek Rumiński - Język JAVA - Rozdział 8Rozdział 8 Integracja Javy z innymi językami - JNI. Programo
using namespace std; int main(){ int i,j,p=0,n=0; char słowo[25] ; fstream
Image2 #include <stdio.h> int main () // kod znaku 0 = 4
ROZDZIAŁ I 25 Dlaczego własny biznes? w biznesie mogą osiągnąć tylko jednostki o szczególnych, wrodz
rozdział 1 (25) 28 Podstawy marketingu ^Współczesne rozumienie marketingu przyjmuje za punkt wyjścia

więcej podobnych podstron