C-Quellcodeschnipsel erklären

  • Themenstarter Themenstarter sw33tlull4by
  • Beginndatum Beginndatum
S

sw33tlull4by

Guest
Hey!
Folgendes Problem:
Bin auf den MS-Seiten über folgenden Code gestolpert:
Code:
typedef NTSTATUS
 (EVT_WDF_DRIVER_DEVICE_ADD)(
     IN WDFDRIVER Driver,    
     IN PWDFDEVICE_INIT DeviceInit
   );

So, ich kenne typedef nur für das definieren neuer Datentypen, wie zb
typedef ganzezahl int;
oder aber für structures.

Dieses typedef ist anders, mich irritieren vor allem die klammern um EVT_WDF_DRIVER_DEVICE_ADD , darüber hinaus scheint hier eine Funktion per typedef referenziert zu werden.

Könnt ihr mir also sagen wiso die klammern und wie es sich mit der Funktion verhält?
Ganz zu schweigen von den Parametern die deklariert werden?(da sind 3 wörter und nicht
wie üblicherweise 2(Datentype und Varname)).

Der Link zum Codeschnipsel:
http://msdn.microsoft.com/en-us/library/ff541693.aspx

Mfg

sw33t

//edit:
Was ich auch nicht verstehe ist das ich eine Variable deklariere, diese danach aber eine Funktion ist welche definiert wird, was höchstwahrscheinlich wichtig ist aber mich etwas verwirrt.
 
Zuletzt bearbeitet:
Dieses typedef ist anders, mich irritieren vor allem die klammern um EVT_WDF_DRIVER_DEVICE_ADD , darüber hinaus scheint hier eine Funktion per typedef referenziert zu werden.

Yep.



Könnt ihr mir also sagen wiso die klammern und wie es sich mit der Funktion verhält?
Ganz zu schweigen von den Parametern die deklariert werden?(da sind 3 wörter und nicht
wie üblicherweise 2(Datentype und Varname)).
Das sind Datentypen + Varname (den man ueberlicherweise auch weglaesst).
(Typen+modifikatoren koennen aus mehr als einem Wort bestehen: long int, short int, unsigned long int ...)


Was ich auch nicht verstehe ist das ich eine Variable deklariere, diese danach aber eine Funktion ist welche definiert wird, was höchstwahrscheinlich wichtig ist aber mich etwas verwirrt.
Dich interessiert dort ja nur ein wert. Das kann natuerlich auch der Rueckgabewert irgend einer Funktion sein
 
Hi!
Danke für die Antwort.
Die Modifikatoren hab ich ganz vergessen.

Wenn ich eine Funktion mittels typedef einer Variablen zuweise, komme ich wenn ich diese Variable aufrufe ja nicht mehr an die Parameter ran,
Sehe ich das richtig das das nur bei Parametern gemacht wird, welche ich nicht direkt beeinflusse, die aber die resultate meiner Operationen wiederspiegelen das ich somit praktisch den Funktionsaufruf kürzer gestalte, um das gleiche Ergebnis abzufragen,weil dieses einer dynamik unterworfen ist, welche von den Parametern abhängt?

Du sagst mir also das es legitim ist eine variable als eine Funktion zu definieren?(Auch im normalen C?(bin zZ nicht an einem System mit compiler))Die grenzen zwischen Funktion und Variable verschwimmt dann ja.Irgendwelche Vorteile das das so gemacht wird, denn damit die Variable ihren Wert bekommt muss ich die definierte Funktion dennoch ausführen, was also eher verwirrung als Vorteile bringt, oder?
Es ist also umgekehrt zur typedef-Situation, wo ich eine Funktion durch eine Variable ersetze, da ich hier ja eine Variable durch eine Funktion ersetze.
Mfg

sw33t
 
Zurück
Oben