Du bist nicht angemeldet.

Werbeanzeige

DeKugelschieber

Community-Fossil

Beiträge: 2 656

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

711

15.06.2016, 20:39

Für unser Produkt macht das absolut Sinn. Aber schön find ichs auch nicht.

712

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

713

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

714

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 520

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

715

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.

716

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;
}

717

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: 437

Beruf: Student

  • Private Nachricht senden

718

23.06.2016, 19:20

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

Architekt

Community-Fossil

Beiträge: 2 496

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

719

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 142

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

720

03.07.2016, 19:55

Letztens auf Twitter gesehen. :thumbsup:

C-/C++-Quelltext

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

Werbeanzeige