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

Anonymous

unregistriert

21

25.06.2006, 12:31

Phili
Aua.... :lol:

Anonymous

unregistriert

22

25.06.2006, 12:37

Mh gut das Problem bei mir ist einfach, dass ich ständig Warnungen
und Fehlermeldungen bekomme, die ich einfach nicht verstehe und
ich habe nun nur den alten Standard drauf es gibt soweit ich weiß ja
auch keine Tutorials zum Umstieg vom alten auf den neuen Standard.
Ich hatte bisher nicht gerade viel Lust darauf, stundenlang davor zu sitzen
und mich ins VC 2005 einzuarbeiten, ich bin einfach zu vertraut mit VC 6...

EDIT: Hier mal ein kleines Beispiel:

Quellcode

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
34
35
Kompilieren...
WinMain.cpp
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(334) : warning C4005: '__reserved': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(702): Siehe vorherige Definition von '__reserved'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(341) : warning C4005: '__checkReturn': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(703): Siehe vorherige Definition von '__checkReturn'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(344) : warning C4005: '__typefix': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(704): Siehe vorherige Definition von '__typefix'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(349) : warning C4005: '__override': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(705): Siehe vorherige Definition von '__override'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(350) : warning C4005: '__fallthrough': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(714): Siehe vorherige Definition von '__fallthrough'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(351) : warning C4005: '__callback': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(706): Siehe vorherige Definition von '__callback'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(352) : warning C4005: '__in': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(499): Siehe vorherige Definition von '__in'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(353) : warning C4005: '__out': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(508): Siehe vorherige Definition von '__out'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(354) : warning C4005: '__inout': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(527): Siehe vorherige Definition von '__inout'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(356) : warning C4005: '__out_ecount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(509): Siehe vorherige Definition von '__out_ecount'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(357) : warning C4005: '__in_ecount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(500): Siehe vorherige Definition von '__in_ecount'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(358) : warning C4005: '__inout_ecount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(528): Siehe vorherige Definition von '__inout_ecount'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(359) : warning C4005: '__out_bcount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(510): Siehe vorherige Definition von '__out_bcount'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(360) : warning C4005: '__in_bcount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(501): Siehe vorherige Definition von '__in_bcount'
c:\programme\microsoft platform sdk for windows xp sp2\include\specstrings.h(361) : warning C4005: '__inout_bcount': Makro-Neudefinition
        c:\programme\microsoft visual studio 8\vc\include\sal.h(529): Siehe vorherige Definition von '__inout_bcount'
Verknüpfen...
LINK : warning LNK4076: Inkrementelle Statusdatei ".\Debug/Windows.ilk" ungültig; Verknüpfung erfolgt nicht inkrementell.
Das Manifest wird eingebettet...


Das ist eine Windows Anwendung aber scheint damit ja nichts zu tun
zu haben...

Phili

unregistriert

23

25.06.2006, 12:39

@nix da

Jetzt ist mein Heron-Verfahren sogar schneller... :shock:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double Heron(double a)
{
    double b=a/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    b=(b+a/b)/2;
    return b;
}

Anonymous

unregistriert

24

25.06.2006, 12:45

DarkRaider
Where is the goddamn problem? Der Compiler sagt Dir doch was Du falsch gemacht hast und was potenzielle Fehlerquellen für den Runtime-Bereich darstellen!

Wenn der sagt, das er einen int nicht auf nen bool konvertieren kann, na was macht mann denn da? Dafür braucht man echt kein Tutorial, dafür muß man nur sauber coden!

Phili
Nun ja, überlegen wir mal was der Unterschied ist. Heron vs. Wurzelziehen wissen wir ja genau wo die besseren Abschneider sind ;)

Heron schön und gut, aber überleg doch mal wie Dein Code optimiert wird? Ich sehe da haufenweise Aneinanderreihungen, XOR-Verknüpfungen und Bitshifts. Dazu muß keinerlei DLL-Export durchgeführt werden, da die Funktion direkt im Code ist.

Also so eine Kunst, das das Dingen schneller ist ist das nun nicht ;)

Anonymous

unregistriert

25

25.06.2006, 12:47

DarkRaider
Man merkt: Du hast Dich nicht an die Anleitung der MSDN gehalten, sondern einfach ohne Sinn und Verstand installiert und gehofft das alles läuft wie Butter. So leicht geht das nun nicht.

Das ist ein Profiprogramm und kein DevC++.

Phili

unregistriert

26

25.06.2006, 15:41

@nix da
Hat mich nur gewundert-irgendwie hab ich die Standartvorlagen bisher für perfekt gehalten. :D
Aber im Grunde spricht dann doch nichts dagegen, abjetzt meine eigene Funktion zu nutzen, oder? Oder hab ich doch wieder was übersehen :oops:

Anonymous

unregistriert

27

25.06.2006, 15:50

Phili
Das Heronverfahren ist zwar gut und schön, aber hat seine Grenzen. Allein schon wegen den ganzen Divisionen, kann dies enorm schnell zur Performancebremse werden. Es mit einer For-schleife zu testen ist das eine, aber es in einer richtigen Anwendung (z. B. Spiel) zu testen ist eine komplett andere Dimension.

Würde Dir dennoch die Standardfunktionen empfehlen.

Phili

unregistriert

28

25.06.2006, 15:53

@nix da

Schade, aber so ganz verstehen tu ich nicht, was denn in ner richtigen Anwendung im bezug auf die Funktion anders ist. Ich mein die Funktion selbst ist schneller(in meinem zugegebenermaßen primitiven Test), warum sollte sie dann nicht immer schneller sein? :?

Anonymous

unregistriert

29

25.06.2006, 15:59

Phili
Ganz einfach: Das Heron-Verfahren ist nur ein Annäherungsverfahren.

Bei dem Heron-Verfahren bekommt man z. B. bei der Wurzel von 16 nicht exakt 4 raus, sondern 4,000016. Was bei Berechnungen für 3D Games oft nach hinten los gehen kann. Vorallem wenn diese Werte weiterbenutzt werden, daraus noch mal Wurzeln gezogen wird usw. Falsch+Falsch+Falsch = Noch mehr Falsch als 1x Falsch ;)

Weiteres Problem ist, wenn man eine "Hohe Zahl" hat, sagen wir, was von 90.000? Dann muß man das Verfahren mehr verfeinern, was auf die Performance haut.

Phili

unregistriert

30

25.06.2006, 16:00

@nix da
Nen Annäherungsverfahren ist sqrt auch, oder? Übrigens, wie arbeitet eigentlich sqrt?

Werbeanzeige