[C++] Bepaalde keywoorden voor een functie.

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

  • reussue
  • Registratie: Juli 2003
  • Laatst online: 03-03 19:07
Hallo allemaal, dit is m'n eerste post hier, dus als ik iets verkeerd doe, zeg het dan :*)

Ik vroeg me af wat bepaalde woorden inhouden die je voor functie kunt zetten, Bijv. inline-functies, wat is precies het verschil tussen een gewone en een inline-functie.
En wat is het verschil tussen __stdcall, __fastcall en __cdecl.
Ik heb al wat gegoogled maar niet echt bruikbare info gevonden.

Mvg. Michiel

  • Juicy
  • Registratie: December 2000
  • Laatst online: 20-08 18:00
Duidelijke zoekvragen ... Type in google eens in "Hoe moet ik zoeken in Google".

Hier een zoekopdracht voor je inline functie:
http://www.google.nl/sear...=UTF-8&oe=UTF-8&hl=nl&lr=

-


  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

- gewone functie vs inline functie: Bij een gewone functie call worden de parameters op de stack gezet en de programma pointer verzet naar de plaats waar de functie zich bevind in het code segment. Bij een inline functie call, wordt de code van die functie simpelweg erin gepaste en dan vindt er dus geen jump plaats en hoeft er niets op de stack gezet te worden als parameters.

- __stdcall vs __cdecl: bij stdcall worden de parameters door de callee van de stack gehaald, bij cdecl door de caller. Grootste verschil in gebruik: bij cdecl kun je een variabel aantal parameters meegeven (mooi voorbeeld : printf()).

Als je een functie aanroept van een library die in c geschreven is en gecompiled, dan zul je die externe functies als __cdecl moeten declareren. Windows Api-calls zijn vaak __stdcalls.

JayGTeam (213177)


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Met 'inline' kun je aan de compiler doorgeven dat je een functie graag inline wilt hebben (duh ;)). Dat betekent dat er in plaats van een functieaanroep de gehele code van de functie in je uitvoerbestand komt te staan. Meer (en beter/duidelijker/etc :)) info: Klik!

__stdcall, __fastcall en __cdecl zijn zo ver ik weet verzinsels van Microsoft, om aan te geven op welke manier een functie aangeroepen moet worden (ruimt de aanroeper, of de functie zelf de stack op of iets dergelijks.) Maar daar weet ik weinig vanaf.
edit:
te laat :)

[ Voor 4% gewijzigd door _Squatt_ op 16-10-2003 18:06 ]

"He took a duck in the face at two hundred and fifty knots."


  • reussue
  • Registratie: Juli 2003
  • Laatst online: 03-03 19:07
oki, thx voor de uitleg.

btw Juicy ik had misschien wel wat beter kunnen zoeken maar ach, als iedereen heel internet afstruimt zal het forum bar leeg blijven denk je niet...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

reussue:
oki, thx voor de uitleg.

btw Juicy ik had misschien wel wat beter kunnen zoeken maar ach, als iedereen heel internet afstruimt zal het forum bar leeg blijven denk je niet...
Dat is wellicht een utopie voor de mensen die hopen dat er nooit meer zoekvragen zullen komen ;) Dat bij voorbaat ondermijnen is niet helemaal de instelling die we hier hopen te vinden bij users :)

Lees even de [FAQ]algemene faq[/] voor hoe we hier gebruikelijk zijn met elkaar om te gaan e.d.
Verder kun je in de P&W FAQ en beleid nog e.e.a. vinden over wat we hier in P&W aan info al verzameld hebben en wat we hier verwachten van een topicstart :)

Verder wens ik je veel plezier met je GoT-carriere :+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verder mag dit topic eigenlijk wel gewoon dicht, want het is gewoon een manual vraag, en alle andere manual vragen gaan ook op slot

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.