Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.05.2002, 19:35
Diablo_bth



also diese Sache ist mir immer noch ein kleines Mysterium, was vielleicht auch an der Verwirrungspolitik von M$ liegt ( einige dieser Schlüsselwörter gibt es sicherlich auch in anderen Compilern )

zuerst wären da die inline-Varianten:
es gibt meines Wissens insgesamt vier davon.
Quellcode:
inline  _inline  __inline  __forceinline

das letzte lässt sich schon irgendwie erahnen, aber was ist mit den anderen? bewirken die alle das gleiche? irgendeinen Grund muss es ja geben dass man all diese Varianten verwenden kann oder?

als nächstes wäre da der standart-call. Was zum Teufel ist zwischen diesen beidern varianten bitte der Unterschied?
Quellcode:
_stdcall __stdcall

genauso hier
beide werden blau markiert wenn man sie schreibt, habe bei denen aber absolut kein plan was die bewirken sollen.
Quellcode:
_cdecl __cdecl

--

zum Seitenanfang zum Seitenende Profil || Suche
001
22.05.2002, 21:29
Leviathan



afaik sind alle schlüsselwörter, doe mit einem unterstrich beginnen nicht teil der iso 14882 spezifikation, sondern eine ms-erweiterung der sprache c++.

und verlass dich nicht darauf, dass eine zeichenfolge ein schlüsselwort ist, nur weil der editor es blau markiert. afaik gibt es bei programmierung mit der mfc eine definition von bool etwa in folgender form (in irgenteinem mfc-header):

Quellcode:typedef bool unsigned char;
const bool true=1;
const bool false=0;

zu den beiden stdcalls: ich habe beite einmal in einer dll verwendet, bei einem funktionsaufruf aus einem vb-programm ging scheinbar beides. details zu dem vb-programm weiss ich nicht, das war nicht von mir und ich habe sogut wie keine ahnung von vb.

ich vermute, dass __stdcall ein relift aus einer alten version von msvc++ ist, ich meine in der dokumentation hätte da mal so eine andeutung gestanden.

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
002
23.05.2002, 08:03
Hanfling



ich meine es ständ dazu einiges in der msdn sammlung..

bei __forceinline wird imho die funktion immer inline, sonst wird sie zb. durch die optimierung des compilers teilweise nicht inline...

--

Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o

zum Seitenanfang zum Seitenende Profil || Suche
003
23.05.2002, 10:30
Hessie J.



Genau, in der MSDN wird alles erklärt: inline geht nur in C++, __inline in C und C++, _inline ist das gleiche wie __inline und nur aus Kompatibilitätsgründen drin, __forceinline schaltet die Kosten-/Nutzenanalyse des Compilers aus und inlined die Funktion immer (wenn sonst nichts dagegen spricht).

--

zum Seitenanfang zum Seitenende Profil || Suche