Sprog :
SWEWE Medlem :Logon |Registrering
Søg
Encyclopedia samfund |Encyclopedia Svar |Indsend spørgsmål |Ordforråd Viden |Upload viden
Forrige 1 Næste Vælg sider

Inline-funktion

Inline-funktioner er defineret i klassen medlem funktion in vivo, som er en funktion af kroppen af ​​funktionen i klassen kroppen.

Definitioner

Inline funktion fra kildekoden niveau for at se, er der strukturel funktion, og efter kompilering, men ikke med karakteren af ​​funktionen. Inline funktion opkald sker ikke, når overførslen af ​​kontrol, men påkompileringstidspunktet indlejret i kroppen af ​​funktionen af ​​hver ringer. Compile-tid, svarende til makro substitution, bruge funktionen kroppen til at erstatte funktionen navn til at kalde på. Modificeres ved anvendelse af inline-kode i almindelighed, men evnen til at danne en indbygget funktion, compileren nødt til at se på funktionen definitionen af ​​specifik behandling.Motivation

Inline ekspansion bruges til at fjerne overhead af en funktion opkald, når tiden. Det er ofte brugt hyppigt henrettet funktion. En lille hukommelse funktion er meget fordel.

Hvis der ikke er indbygget funktion, kan compileren bestemme, hvilken funktion indbygning. Programmører har ringe eller ingen kontrol over, hvad kan kun være inline, og hvilke ikke. Til denne grad af kontrol, kan betydningen af ​​en programmør vælge en bestemt applikation inline.

Funktion inlining problem

Ud over problemer i forbindelse med inline ekspansion i almindelighed, kan sprog fungerer som en indbygget funktion ikke være lige så værdifuld som grunden til at de synes, for en række:

Normalt en compiler er i en bedre position end mennesker at afgøre, om en bestemt funktion skal indbygges. Nogle gange kan compileren ikke være så meget funktionalitet som en indlejret programmør sagde.

Et vigtigt punkt at bemærke er koden (inline) bliver udsat for deres klient (den kaldende funktion).

Med udviklingen af ​​funktion, kan de blive passende inline, de ikke gjorde før, eller ikke længere passer i det fælles foran dem. Inline eller inline-funktioner aflysning nemmere end at konvertere fra en makro, men stadig har brug for yderligere vedligeholdelse, generelt giver relativt ringe interesse.

Diffusion model for de indfødte C compiler systemet kan øge kompilering tid, fordi de er i midten af ​​kroppen, sagde til hvert opkald punkt, kopieres de inline inline funktioner. Kan stige i kode størrelse forventes at stige med et spejl påkompileringstidspunktet.

C99 indlejret i lovgivningsmæssige krav i kun én yderligere ekstern definere en anden kompilering enhed, funktionelle og de tilsvarende inline definitioner kan forekomme flere gange i forskellige compilation-enheder, hvis funktionen bruges til at placere. Dette kan let føre til stikket, fordi fejlen ikke var sådan en definitionen af ​​programmøren. Af denne grund bruges ofte sammen i den statiske inline C99 giver også funktionen af ​​det indre kontakt.

I C , er det nødvendigt at definere en (kompilering enhed) inline funktion ved hjælp af et fælles træk i hvert modul, og det skal defineres i kun ét modul. Ellers er det umuligt udarbejdet et modul er uafhængig af alle andre moduler.

Af funktionsmæssige problemer og optimere selv, snarere end sprog, se brugen af ​​inline ekspansion.

Inline-funktioner er erklæret bruge søgeordet inline funktion, men også en indbygget funktioner, dens vigtigste rolle er at løse programmets driftseffektivitet.

Når du bruger inline funktioner at bemærke:

En rekursiv funktion kan ikke defineres som en indbygget funktion

2 inline funktion er generelt velegnet til komplekse strukturer, mens og switch, som ikke eksisterer, og at der kun er én sætning - fem små funktion, ellers om systemet fungerer, behandles som normale funktioner.

3 inline funktion er defineret kun efter første brug, ellers vil systemet kompilere det anset for at være en normal funktion.

4 inline funktion grænsefladeerklæring kan ikke være undtagelsen.

Pris

"En funktion erklæring [..] inline anvisning erklærer en inline funktion og opnå den inline anvisning angiver inline funktion krop på tidspunktet for opkaldet i stedet for den sædvanlige funktion opkald er den foretrukne mekanisme kræver ikke en implementering kalder dette punkt i gennemførelsen af ​​fælles udskiftning, men selv dette inline substitution udelades, de øvrige regler 7.1.2 inline funktion definition, skal respekteres. "

"Beskrivelse af funktionen inline funktioner erklæret en indbygget funktion. [..] Produceret en inline funktion funktion angiver, at funktionen kaldes så snart som muligt i hvilket omfang disse anbefalinger er effektiv til at opnå defineret (Bemærk: For eksempel kan en inline alternativ udformning ikke kan udføres, eller kan kun udføres inden for rammerne af erstatte inline i erklæringen kræves af EU).

"[..] Inline definition ikke giver en eksternt definerede funktioner, og definitionen ikke er forbudt, er der er en oversættelse af en ekstern enhed. En inline definitioner give nogen andre eksterne definitioner, kan oversættelsen blive brugt til at gennemføre indkaldelsen af den samme funktion oversættelse enhed. ikke angive, om det opkald, fungerer inlining definitioner eller bruge en ekstern definition. "

- International Organization for Standardization 9899:1999 (E) i C99-standarden, afsnit 6.7.4

Makro Sammenligning

Funktion inline funktioner og præprocessortilvalg makroer funktionalitet svarende. Jeg mener, vi har brugt præprocessortilvalg makroer, vil vi ofte definere nogle makroer, såsom

# Definer TABLE_COMP (x) ((x)> 0 (x): 0)

Definerer en makro.


Forrige 1 Næste Vælg sider
Bruger Anmeldelse
Ingen kommentarer endnu
Jeg ønsker at kommentere [Besøgende (18.221.*.*) | Logon ]

Sprog :
| Tjek kode :


Søg

版权申明 | 隐私权政策 | Copyright @2018 Verden encyklopædiske viden