Hva står f for i C standard bibliotekfunksjonsnavn?

 C Programming >> C C# Program >  >> Tags >> Function
Hva står f for i C standard bibliotekfunksjonsnavn?

Spørsmålet ditt generelt er for generelt, men jeg kan forklare noen eksempler.

  • fgets , fopen , fclose , … — "f" står for "fil". Disse funksjonene aksepterer eller returnerer en FILE * peker i motsetning til et filnummer slik POSIX-funksjonene gjør.
  • printf , scanf , … — "f" står for "formatert". Disse funksjonene godtar en formatstreng.
  • fprintf , fscanf — Dette er en kombinasjon av de to ovennevnte.
  • sinf , cosf , … — «f» står for float (for å skille fra double alternativer). Merk at dette passer ganske bra med suffiksering av flytende komma-literal med en f som i 1.5f .
  • Til slutt, som Deduplicator påpeker, er det noen navn som free , floor eller setbuf ("sett buffer") hvor "f" bare vises som et naturlig språktegn.

Tradisjonen med å pre- eller suffiksere navn med enkeltbokstaver som indikerer typen av argumentene er en nødvendighet i C som har blitt foreldet i C++ takket være overbelastning. Faktisk fungerer overbelastning i C++ ved at kompilatoren automatisk legger til disse suffiksene igjen under panseret til de genererte symbolene ved en prosess som kalles navnmangling.


Den innledende f-en refererer til typen som funksjonen opererer på:

  • fgets :bruk gets på en FILE * håndtere i stedet for bare stdin
  • fopen :åpne en fil og returner den som en FILE * (i stedet for en filbeskrivelse som den originale open gjør)

Den etterfølgende f betyr at den bruker en formateringsstreng:

  • printf :skriv ut i henhold til formatspesifikasjonen
  • scanf :les inn i henhold til formatet

Og kombinert får du ting som:

  • fprintf :skriv ut til en bestemt FILE * i henhold til formatspesifikasjonen

Når du vurderer ting som math.h funksjoner, angir den etterfølgende f at den bestemte funksjonen opererer på operander av typen float slik:

  • powf :ta eksponenten til float s
  • powl :ta eksponenten til long double s

En ledende f står for file , en etterfølgende står for formatted;for eksempel sscanf brukes til å skanne s trings for verdier i et mønster som spesifisert av et format, mens fprintf skriver ut formatert tekst til en fil.

EDIT:Å, og så er det matematiske funksjoner fra math.h som vil ha type suffikser som atanf for beregning av arcustangens for flyteverdier.