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

701

19.06.2016, 16:06

Finde das immer noch amüsant im WinNT.h

C-/C++-Quelltext

1
2
3
4
5
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef int INT;

Kommt wohl noch von der Zeit wo es noch kein Syntax-Highlighting gab?
Oder

Quellcode

1
#ifndef NDEBUG

idontknow

unregistriert

702

21.06.2016, 10:38

Aus der STL (VS Impl.):

Quellcode

1
++this->_Mysize();


Ist eventuell tatsächlich gar nicht sooo WTF; aber habe noch nie gesehen, dass jemand wirklich am this pointer herumschraubt bzw. gesehen schonmal, aber prinzipiell immer gelernt das das Müll ist und man das nicht macht.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

703

21.06.2016, 10:53

Der -> Operator hat eine höhere Priorität als das Pre-Inkrement. Dort steht praktisch also ++(this->Mysize()); und bezieht sich somit auf den Rückgabewert und nicht auf das this. Unschön ist es aber trotzdem, wenn man die Prioritäten Nachschlagen oder wissen muss um einen Ausdruck zu verstehen.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

704

21.06.2016, 12:19

Finde das immer noch amüsant im WinNT.h

C-/C++-Quelltext

1
2
3
4
5
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef int INT;

Kommt wohl noch von der Zeit wo es noch kein Syntax-Highlighting gab?
Oder

Quellcode

1
#ifndef NDEBUG

Liegt eher an der Möglichkeit da dann Datentypen auszutauschen. CHAR könnte z.B. auch als unit8 implementiert werden oder so. Das ist wichtig weil der Code sich da allenfalls darauf verlässt, dass ein CHAR immer 8 bit gross ist. Je nach System, wo es dafür kompiliert wird kann es sein, dass ein char grösser ist. Insbesondere bei int ist dies auch wirklich zum tragen gekommen.

705

21.06.2016, 23:09

Aber man sollte das eh nicht nehmen, da die "typedef long LONG;" beim gcc mit 64-Bit Architektur dann 64-Bit hat.
Am Besten man nimmt die vom Standard: uint_least8_t, uint_least16_t usw. wenn man mit Architekturen mit ungleich 8 Bit Bytes arbeitet oder das kleinste Wort 32-Bit hat und andere Derivate. Ansonsten nehme ich uint8_t, uint16_t, int8_t, int16_t ... bzw. uint_fast8_t, int_fast8_t usw.
Aber bei MS war ja bis mindestens VS2008 dieser Standard nicht enthalten.
War schon seit C99 Standard, haben die meisten Compilerhersteller dabei, ausser einen, der sogar behauptet er habe einen Standard Compiler (vermutlitsch C95 aber immerhin und das noch im Jahr 2008 :))

Aber jetzt gerade passiert:

C-/C++-Quelltext

1
2
3
4
5
6
{
  int i = ui.cbMultiSamplingQuality->currentIndex();
  if(i < 0)
    i = 0;
  return 0;
}

706

23.06.2016, 19:12

Quellcode

1
for (int l = 1; i < 32 * 8 * 32; ++l)

Finde den Fehler...
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

m3xx

Alter Hase

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

707

23.06.2016, 19:20

toll wenn ich i prüfe, aber l inkrementiere :D

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

708

23.06.2016, 19:23

Immer wieder schön ein kleines L zum iterieren zu nehmen. :D
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

709

03.07.2016, 19:55

Letztens auf Twitter gesehen. :thumbsup:

C-/C++-Quelltext

1
2
//happy debugging, suckers.
#define true (rand() > 10)

m3xx

Alter Hase

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

710

23.08.2016, 02:51

Dieser Moment, wenn du auf 250 Zeichen begrenzt bist...(normalerweise ohne Newlines, aber der Übersicht zu Liebe...)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/run local p=10 
local m=0 
local f=CreateFrame("frame") 
local function t(_,n) 
 m=m+n 
 if m>=1 then 
  m=0 
  if p>0 then 
   SendChatMessage(p,"RAID_WARNING") 
   p=p-1 
  else 
   SendChatMessage("Pull!","RAID_WARNING") 
   f:Hide() 
  end 
 end 
end 
f:SetScript("OnUpdate",t)

... Da ist dann kein Platz mehr für vernünftige Bezeichner und Spaces ._.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »m3xx« (23.08.2016, 02:56)


Werbeanzeige