018
24.06.2004, 05:07 Uhr
0xdeadbeef
Gott (Operator)
|
AFX ist der alte Name für die MFC; stdafx.h ist in höchstem Maße VC++-spezifisch. Was #include angeht, das ist ne Präprozessor-Direktive. Der Präprozessor geht vor dem eigentlichen Compiler über den Code und wertet Präprozessor-Direktiven (so ziemlich alles mit #) aus.
bedeutet für den Präprozessor im Grunde nichts anderes als "füge den Inhalt der Datei foo hier ein". Einen Unterschied gibts dann noch zwischen #include "foo" und #include <foo>, weil zweiteres auch den Systempfad noch nach Headern durchsucht. (virtual - gib mal ne genaue Definition des Unterschiedes.)
iostream.h seinerseits hat nie einem Standard angehört, sondern kommt aus dem C++ der Vor-Standard-Ära, als die Leute try/catch noch mit Präprozessor-Makros umgesetzt haben usw. Der Standard ist
Dabei ist zu beachten, dass iostream Teil der STL ist und damit alle in ihm definierten Klassen und Variablen im namespace std sind, ein Programm a la
C++: |
#include <iostream> int main() { cout << "Hello, World!" << endl; }
|
wird also nicht kompilieren. Viel mehr muss man dann
C++: |
#include <iostream> int main() { std::cout << "Hello, World!" << std::endl; }
|
bzw.
C++: |
#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; }
|
schreiben.
Der Sinn hinter Bibliotheken ist zweierlei - zum einen spart es Plattenplatz, weil man den Kram nicht mit jeder Applikation neu ausliefern muss. Zum anderen haben dynamisch ladbare Bibliotheken den großen Vorteil, dass zur Laufzeit entschieden werden kann, ob die Bibliothek geladen werden kann, was besonders für Plugin-Architekturen sehr spannend ist. Ist die Bibliothek da, wird sie geladen, wenn nicht, dann nicht (wie Mozilla das macht), oder man parst es vorher aus ner Config-File (a la apache).
definiert einen Zeiger auf eine char-Variable (wird in C oft für strings benutzt),
definiert ein Array von chars (was auch oft für strings benutzt wird).
definiert ein Array von Zeigern auf char-Variablen, also ein array von strings.
Ich glaube, das wars, oder? -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |