Quote:
Originally Posted by dunkis
Wie meinst du das?:
|
Konsole -> cd zum Verzeichnis -> programm.exe
Quote:
|
Wo finde ich das? cmd console?
|
Jo.
Quote:
Da wird aber viel angezeigt, was ich erstellen kann.
Ich bin nun einfach auf Quelldateien → C++ Datei
Da ich mich nicht auskenne, taste ich mich vorsichtig heran und hoffe ihr versteht das nicht als nervtötend^^
|
Ist richtig.
Quote:
|
Ich finde den Reiter bei der Einstellung nicht, wo ich diesen Punkt ausstellen kann.
|
Leeres Projekt war doch die Lösung.
Ansonsten gibts da noch im gleichen Menü (bei der Erstellung des Projekts) die Option Vorkompilierte Header.
Ansonsten Rechtsklick aufs Projekt -> Eigenschaften -> C/C++ -> Vorkompilierte Header
Quote:
# Ich habe eine Frage zu den Datentypen
Es wird gesagt ein gewisser Datentyp hat den Speicherplatz von X Bytes und der Wertebereich liegt bei XXX
Was ist mit dem Wertebereich gemeint?
|
Der Zahlenbereich der mit dem Speicherplatz maximal darstellbar ist.
Quote:
|
Was bedeutet 1 Byte ? Ich weiß das es eine Datenmenge ist aber was genau hat das mit dem Rechner zu tun?
|
Ja was haben denn Bytes mit dem Rechner zu tun?

Das ist die kleinster (adressierbare) Einheit, die man zur Speicherung von Daten verwenden kann.
Ein Byte besteht aus 8 Bits und diese sind jeweils 1 oder 0. Aus einfacher Mathematik (Binärsystem -> Dezimalsystem) ergibt sich dann, dass man mit einem Byte maximal 256 (2^8) verschiedene Werte speichern kann.
Mit einem doppel so großen Speicherplatz, also 2 Byte, lassen sich 65536 (2^16) verschiedene Werte darstellen.
Quote:
|
Wird die Datenmenge (im Sinne eines Programms) vom Rechner erfasst und verarbeitet?
|
Wie genau meinst du das? Die größe heißt, dass du nur Zahlen in diesem Bereich damit verarbeiten kannst.
Quote:
Wenn die Datentypen "char" und "wchar_t" für die Speicherung von Zeichencodes zuständig ist, können die auch Ganzzahlige Zahlen speichern?
Ich habe "char" meistens mit Buchstaben gesehen und frage mich, wenn sie einen
Wertebereich haben -128/+127 (0/255).
|
Ja, können sie. Zeichen sind nur kleine Bildchen auf dem Bildschirm, der PC weiß davon nix. In Wirklichkeit sind es auch nur numerische Werte im Speicher, die da verarbeitet werden, eben im Falle von char im Bereich von 2^8 verschiedenen Zahlen und bei wchar_t sind es 2^16 verschiedene Zahlen (ein wchar_t hat 2 Byte). In der ASCII Tabelle ist gegenübergestellt, welches Zeichen zu welchem Wert gehört. Da 256 Zeichen etwas wenig sind, um alle Sprachen dieser Welt darzustellen, kam später der UNICODE Zeichensatz und damit wchar_t, womit du halt gleich mal ~65000 Zeichen darstellen kannst.
Quote:
|
Wenn "int" einen Wertebereich von -32768/32767 hat,
|
Nein, ein int hat 32 Bit, also 4294967296 oder -2147483648 bis +2147483647 als Wertebereich.
Quote:
|
aber ich diesem Datentyp einen höheren/niedrigeren Wert zuweise, wird das dann ein Fehler?
|
Das kommt darauf an, wie du Fehler definierst. Das Programm wird nicht abstürzen, nein (zumindest nicht alleine deswegen).
Um das zu verstehen muss man etwas tiefer in die Rechnerarchitektur schauen: Wie gesagt, der PC arbeitet im Grunde nur mit Bits, die für den Programmierer in Bytes zusammengefasst sind, welche er einzeln ansprechen kann. Wenn du ein Byte, also 8 Bit hast und du hast den maximal möglichen Wert 1111 1111 (also in binärer Schreibweise; 255 im Dezimalsystem), was passiert dann, wenn du +1 rechnest?
Aufgrund der Schaltung, in der die Addition implementiert ist, wird das ganze überlaufen, du kommst also wieder bei 0 an.
Eigentlich wäre es ja 1 0000 0000, aber da nur 8 Bits gespeichert werden können, fällt die 1 am Anfang wieder weg.
Das ganze war nun für unsigned, also nicht vorzeichenbehaftete Werte beschrieben. Wie gesagt, ein Byte kann 256 verschiedene Werte annehmen.
Das kannst du als 0-255 oder -128 - +127 (2^7) interpretieren; das erste Bit fällt nämlich weg, da man dieses zur Bestimmung des Vorzeichens verwendet.
Nun sind also binär die Werte 0000 0000 - 0111 1111 positiv und die negativen Zahlen werden durch alles darüber bis zum Maximalwert 1111 1111 dargestellt, also:
1000 0000 - 1111 1111 (-128 - -1)
Was nun passiert, wenn du zum maximalen positiven Wert einer vorzeichenbehafteten Zahl 1 addierst, kannst du dir wohl vorstellen:
0111 1111 + 1 = 1000 0000
127 + 1 = -128
Das ganze läuft also in eine negative Zahl über.
Die genannte Problematik ist auch Ursache einiger unschöner Sicherheitslücken in vielen Programmen, die eigentlich nur positive Werte zulassen sollen, bei denen aber (aus Unvorsichtigkeit) auf das unsigned Schlüsselwort verzichtet wurde, weshalb der Compiler Code generiert hat, der auch mit negativen Zahlen rechnen kann.
Und schon ist 128 plötzlich kleiner als 127, weil es in Wirklichkeit zur -128 überläuft.
Genaueres zu Bits, Bytes und dem Binärsystem kannst du dir bei Wikipedia ansehen, da ist das imho sehr gut erklärt.