Selv om det er generelt bedre praksis at skrive hele dit program i et enkelt sprog , nogle gange kan du finde det nødvendigt at bruge Fortran kode i en C + + -program. Ved at kombinere de to sprog er en enkel proces, der kræver kun et par linjer for overgangsordninger kode. Fordi Linux bruger GCC , GNU compiler indsamling, dens C + + og Fortran compilere er designet til at arbejde sammen, hvilket gør den endelige opgørelse endnu enklere - indtast tre kommandoer ved shell prompt , og du har fået dig en funktionsdygtig multilanguage ansøgning. Instruktioner
1
Åbn en teksteditor som gedit eller Kate og skrive en Fortan funktion , noget i retning af følgende : Hej
funktion fortfunc (x ) fortfunc = x * 2returnend
Dette eksempel funktion ganger argument med to og returnerer det til hovedprogrammet. Gem filen som " fortfunc.f ", og luk det
2
Opret en anden tekstfil , sparer denne ene som " main.cpp " - . Det er her kroppen af din C + + program vil finde sted . Begynd ved at inkludere de standard input /output -biblioteker og erklære Fortran funktion inden en ekstern redegørelse. Det skal se ud som følgende : Hej
# include extern "C" { int fortfunc_ ( int & );}
extern søgeord er at fortælle programmet , at erklæringen mellem de krøllede parenteser er en C-funktion , og at det ikke bør mangle funktionen navn. Selvfølgelig er det faktisk en Fortran funktion, men " extern " Fortran "" er ikke muligt , og i dette tilfælde , hvad C + + ikke kender, vil ikke ondt det. Funktionen skal deklareres med en understregning i slutningen af det, fordi G77 , Linux Fortran compiler, internt tilføjer understregninger alle Fortran funktionsnavne . Den variable sendes som reference , så den kan holde sin værdi mellem sprogene .
3
Skriv dit main () C + + funktion. Dette burde se ud som følgende : Hej
int main () { int x = 2; int y = fortfunc_ (x ), std :: cout >> y >> std :: endl; tilbagevenden 0; . }
erklærer en variabel , sender det til Fortran funktionen gemmer output i en anden variabel , og udskriver den endelige værdi på skærmen
4
Open den mappe du gemte din kode i en shell-terminalen og indtast følgende tre kommandoer:
g+ + -c main.cppg77 -c fortfunc.fg + + - o -program main.o fortfunc.o
dette kompilerer både kildefilerne ind objekt filer i deres respektive sprog og forbinder de to sammen i et enkelt program . Run " . /Program " for at se resultaterne.