Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

1

29.12.2004, 18:05

Casting:Mein Compiler spuckt keine Warnung aus!

Hallo Zusammen

Ich bin auch neu im Forum und Programmieren.
Lern jetzt C++ mit dem Buch von Herrn Kalista (an dieser stelle ein grosses Lob, es ist sehr verständlich geschrieben!!)

Nun mach ich hier ein Casting, ohne dem Compiler dies mitzuteilen,also sollte er doch ne Warnung ausgeben, macht er aber nicht, "0 Fehler 0 Warnung (en)

Ich benutze den Visual C++ (Schüleredition vom Buch)

Macht das dieser Compiler einfach nicht oder muss man da irgendwelche Voreinstellungen vornehmen?

Gruss Beneroth

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

2

29.12.2004, 18:10

1. Welches Casting denn genau?
2. In VC++ kann man bei den Projekteinstellungen die Warnstufe ("Empfindlichkeitsstufe" beim Kompilieren) verstellen!
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

29.12.2004, 18:20

Man kann in Klassen cast festeinbauen um sich dadruch Arbeit zu sparen. Vielleicht ist die genutzte Var eine Instanz einer solchen Klasse.

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

4

29.12.2004, 19:01

1. Casting im C-Stil (S.47 im C++ für Spieleprogrammierer)

2.Danke, habs jetzt auch gesehen.Was ist den der Unterschied bei den jeweiligen Stufen? Je nach dem welche Stufe ich einstelle kommen mehr oder weniger Warnungen (zwischen 22-54)


wenn man ja ohne cast eine Datei umwandelt, sollte ja eine Warnmeldung kommen, aber da kommt entweder keine oder massenhaft, wobei die im Buch genannnte nicht vorkommt.

Hier ist das zwar noch nicht so wichtig, aber falls ich dann mal vielleicht eine unerwünschte Dateiumwandlung einbaue, und dann keine Warnung kommt, dann ist der Fehler ja erst in der Laufzeit ersichtlich und dann kann ich ja mal mit fröhlichem Suchen anfangen.. :rolleyes:


Darum würde ich gerne diese Warnung aktivieren, weiss aber nicht wo im Arbeitsbereich.Daher die Frage.

Facer

Frischling

Beiträge: 11

Wohnort: Ittersbach

Beruf: Schüler

  • Private Nachricht senden

5

30.01.2005, 15:01

Habe genau das gleiche Problem. Auch bei Warnstufe 4 bleibt die Warnung weg.

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

6

30.01.2005, 16:34

Hi!

Eine DATEI umwandeln oder casten? Verwechselst Du nicht gerade etwas? Zeig mal bitte das Stück Sourcecode um das es hier geht.

mfg,
Heiko

Facer

Frischling

Beiträge: 11

Wohnort: Ittersbach

Beruf: Schüler

  • Private Nachricht senden

7

30.01.2005, 17:32

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
  Programm: Projekt 10
  Programmierer: Jens König
  Version: 1.0
*/

// C++ für Spieleprogrammierer

// Listing 2.9

// Fehlerquelltext

//

#include <iostream>
using namespace std;

// Hauptprogramm

//

int main()
{
    // Variablen

    //

    const int Tempolimit = 100;
    float Geschwindigkeit = 130.8f;
    int Differenz;

    // Übertretene Geschwindigkeit berechnen

    Differenz = Geschwindigkeit - Tempolimit;

    // Ausgabe des Straffzettels

    cout << "Hier sind " << Tempolimit << " km/h erlaubt\n";
    cout << "Sie sind " << Geschwindigkeit << " km/h gefahren\n";
    cout << "Sie sind " << Differenz << "km/h zu schnell gefahren\n";

    return 0;
}


normal sollte da doch jetzt eine meldung kommen (zumindest stehts so im buch)

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

8

31.01.2005, 18:13

Ja, so aus dem Kopf müsste er sowas sagen wie "Möglicher Datenverlust", weil du ja die Differenz aus einem Integer und einem Float wieder in einen Integer speicherst - du verlierst dann ja die Genauigkeit des ".8".

Ich hab das jetzt nicht getestet, aber aus anderen Situationen kenn ich das von meinem Compiler; der steht auf Level 3!

unsigned int
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

ähM_key

Frischling

Beiträge: 49

Beruf: Schüler

  • Private Nachricht senden

9

02.02.2005, 23:36

Im Visual Studio .NET 2003 ist es aber genauso.
Ich erhalte lediglich eine Warnung ("Möglicher Datenverlust") z.B. bei folgendem Beispiel:

C-/C++-Quelltext

1
unsigned int t = time(0)


Hingegen

C-/C++-Quelltext

1
2
float t = 1,5;
int f = t;


Macht er anstandslos. 'Toleranz' steht auf Default.

Das ganze hat mich auch schon gewundert, aber scheinbar scheint M$ das nicht als potentielles Problem zu sehen...
--
www.aqualocity.de

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

03.02.2005, 00:03

Die gehen wohl davon aus, dass man sowas weiß, wobei es bei float und double ja wesentlich unauffälliger ist...

Werbeanzeige