Skip to main content

Hva er et sekvenspunkt?

Et sekvenspunkt i dataprogrammering er et øyeblikk som oppstår under programutførelse når verdien av en variabel er blitt fullstendig beregnet, uten endringer i påvente av tidligere operasjoner og ingen beregninger i et fremtidig uttrykk som blir utført ennå.Det er en rekke steder der sekvenspunkter eksisterer mdash;Primært definert i C Language Standard Mdash;for eksempel før utførelsen av koden i en funksjon, på slutten av kontrolluttrykk i utsagn som for og hvis, og på slutten av et komplett uttrykk, for eksempel en enkel linje med C -kode.Noen grunner til å definere et sekvenspunkt er å unngå situasjoner som er tvetydige, resultere i udefinert oppførsel eller kan forvirre kompilatoren og generere kode som er uforutsigbar.I mange tilfeller bekymrer programmerere seg ikke eksplisitt for et sekvenspunkt, selv om konseptet i opprettelsen av en kompilator er veldig viktig for å sikre at koden blir utført riktig.

Et eksempel på et sekvenspunkt i C -programmeringsspråket er iUttalelsen a ' a + b ;.I dette uttrykket er semikolonet sekvenspunktet;Når uttrykket er fullført, vil verdien av a bli evaluert og ingen gjenværende beregninger vil bli utført på det før neste uttrykk begynner.Det likeverdige tegnet er ikke et sekvenspunkt, fordi verdien av a kan endres av kompilatoren i noen rekkefølge gjennom hele uttrykket.

Hovedregelen for et sekvenspunkt er at det ikke får tilgang til noen variabel mer enn en gang mellom punktene for noenFormål annet enn å beregne en endring i verdien.Et brudd på denne regelen uttrykkes best når du tildeler en verdi til en matrise.Hvis det er en variabel A og en matrise som heter I, er det grammatisk i C, det er mulig å skrive uttrykket i [a] ' a ++.Her får variabelen tilgang mer enn en gang for et annet formål enn å evaluere dens nåværende verdi;nemlig at den brukes som en indeks i matrisen I. Dette betyrI utgangspunktet kan sees på som en måte å sikre at utsagn kan og vil bli evaluert og utført av en kompilator konsekvent.Dette gjør det også mulig for en kompilator å bruke optimaliseringsstrategier, fordi den definerte atferden er forutsigbar.Innenfor C -språkstandarden er det tre hovedforekomster av sekvenspunkter, nemlig når en funksjon begynner utførelse, på tidspunktet for logiske operatører og komma, og på slutten av et komplett uttrykk som ender med en semikolon, som de fleste C -uttalelser gjør.