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
Dein Argument ist schon richtig (für Energeitechnik, Großrechenzentren usw.), passt aber nicht zu deiner Aussage. Du brauchst ja wesendlich mehr Zeit bei prozendualer Entwicklung und somit sind die paar unnötig ausgeführten Befehle wohl mehr als irrelevant
Du widersprichst dir.
Ja und da haste den Sinn der Objektorientierung
Gerade Zeigersarithmetik ist doch das, was effizientes und sparsames Programmieren ausmacht. Dafür ist es halt aufwendiger.
Also du musst deinen Argumentationsstil mal überdenken sorry, aber du widersprichst dir am laufenden Band.
Du hast doch Tipps verlangt und Tipps bekommen, willst Sie aber nicht akzeptieren und argumentierst dann mit Dingen, die damit gar Nichts am Hut haben.
Also zu dem dynamischen String. Dein Speicher kennt keine Datentypen, ein Datentyp ist Nichts anderes als eine Bitleseregel. Hast du ein vorher definiertes Char Array ist das Nciht anderes wie ein Luxus, dass der Compiler prüft, ob du den von dir vorher definierten Speicherplatzbedarf überschreitest. Also ist ein Zeiger auf einen Char auch nichts anderes, als ein dynamischer String und gleichzeitig die speicherplatzsparenste Variante.
Community-Fossil
Zitat
Prozedurale Programmierung, fast reines C, hab ich aber auch schon geschrieben, lies dir bitte meine Posts durch voher durch.
Zitat
Ich arbeite aber alleine.
Zitat
Wenn ich bald den Rendering Teil meines Programmes fertig habe, kann ich dir gerne etwas zeigen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (28.06.2012, 23:26)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
mov ecx, [ebp+0008] mov [ecx+0078], 00000000 [b]mov edx, [ebp+0008][/b] mov eax, [edx+0074] add eax, 01 [b]mov ecx, [ebp+0008][/b] mov [ecx+0074], eax jmp 0042B506 [b]mov edx, [ebp+0008][/b] mov eax, [edx+0078] add eax, 01 [b]mov ecx, [ebp+0008][/b] mov [ecx+0078], eax [b]mov edx, [ebp+0008][/b] cmp dword ptr [edx+0078], 40 |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 |
mov ecx, [ebp+0008] mov [ecx+0078], 00000000 mov eax, [ecx+0074] inc eax mov [ecx+0074], eax jmp 0042B506 mov eax, [ecx+0078] inc eax mov [ecx+0078], eax cmp dword ptr [ecx+0078], 40 |
Quellcode |
|
1 2 3 4 5 |
int a; int b = 10; a = foo(b); bool c = foo2(a) if(c == false) |
Quellcode |
|
1 |
if(foo2(foo(10)) == false) |
Zu deinem Problem: wenn du kein OOP benutzen willst/es vermeidest, darfst du aus "ideologischen" Gründen ja eigentlich auch keinen std::string verwenden, oder? Das wäre dann ja eine Klasse
Sonst verwendest du eben pointer auf char arrays, löscht das array, erstellst ein neues und setzt den pointer darauf... jedes mal wenn sich die länge des strings ändert. Also quasi genau das was std::string als viel simpleres Gesamtgebilde (man nannte es auch OOP) für dich bietet.
Nimm das bitte nicht als Beleidigung: aber ein bisschen heuchlerisch ist das schon, oder nicht?
Und ich finde es zwar gut wenn man sich für geringeren Stromverbrauch und für die Umwelt usw. einsetzt. Aber selbst 1/3 unnötiger Assembler Befehle werden wohl nicht die Welt retten, fahr 1km weniger Auto am Tag und du hast diesen Energieverbrauch 100 mal wieder raus. Es ist absoluter Schwachsinn dieses Argument zu bringen. Darüber können wir uns Gedanken machen wenn es keine Atromkraftwerke, keine Autos mit Abgasen, Flugzeuge mit Kerosin und sonst noch was mehr gibt.
Tja aber erstmal ist es trotzdem oft einfacher OOP zu benutzen. Und zum anderen willst du ja vielleicht nicht für immer alleine entwickeln? Ich hab zwar nichts gegen Querdenker, im Gegenteil, aber ich glaube nicht das 99% der Programmierer sich irren können.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »S. P. Gardebiter« (28.06.2012, 23:43)
C ist in der Regel schneller als C++ und damit für mich effizienter [...]
C ist in der Regel schneller als C++
C ist in der Regel schneller als C++
Halte ich für ein Gerücht. Hab da auch noch nie wirkliche Fakten zu gesehen.
Auch wundert es mich, dass für dich nun plötzlich die Ausführungsgeschwindigkeit das Kriterium für Effizienz ist. Gerade eben war's doch noch der Speicherverbrauch?
Typische Antworten. Es geht hier nicht um die mitgelieferten Bibliotheken, sondern um Code.
Aus deiner Aussage habe ich eher gelesen "Wenn ich den gleichen Code als als C++ kompilier bekomm ich ein langsameres kompilat"
Werbeanzeige