C++ und wikipedia



  • Gut, das braucht man in Java definitiv nicht. Da erstell ich mir ein neues Throwable-Objekt und hab den kompletten Stack Trace. Fast noch ein Stück mächtiger als __FUNCTION__. 😉

    Das ist mir jetzt allerdings nur auf schnell eingefallen. Ist zwar schon ziemlich einfach (ein Objekt erzeugen), aber vielleicht muss man das nicht mal so machen, um dem Stack Trace zu bekommen.
    http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    Edit: Link



  • virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler korrigiert?

    Weil dann der nächste Schlauberger herkommt, und es wieder überarbeitet. Dann muß man die Leute davon überzeugen, daß seine Version richtig ist (Quellen, Textverweise, Aufzeigen, warum die andere Ansicht weit verbreitet, aber trotzdem falsch ist, ...), was mühsam ist. Irgendwann kommt eine Kompromißlösung, man möchte ja, daß alle Ansichten repräsentiert sind: "Der Wasserstrudel in der Badewanne dreht sich auf der Südhalbkugel andersrum. Es gibt allerdings auch die Ansicht, daß dem nicht so sei." Das wäre doch mal was...



  • Daniel E. schrieb:

    virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler korrigiert?

    Weil dann der nächste Schlauberger herkommt, und es wieder überarbeitet. Dann muß man die Leute davon überzeugen, daß seine Version richtig ist (Quellen, Textverweise, Aufzeigen, warum die andere Ansicht weit verbreitet, aber trotzdem falsch ist, ...), was mühsam ist. Irgendwann kommt eine Kompromißlösung, man möchte ja, daß alle Ansichten repräsentiert sind: "Der Wasserstrudel in der Badewanne dreht sich auf der Südhalbkugel andersrum. Es gibt allerdings auch die Ansicht, daß dem nicht so sei." Das wäre doch mal was...

    Ja, da hast du auch wieder war. Kommt allerdings letztlich auch darauf an, wie
    gut man mit den Leuten reden kann und wie einsichtig sie sind.

    mfg
    v R



  • virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler
    korrigiert? Die Moeglichkeit ist gegeben.

    das glaube ich dir erst, wenn du es schaffst, den namen des spiels vom falschen "Nimm" aufs richtige "Nim" zu ändern.



  • Optimizer schrieb:

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    willst du mich veralbern?



  • Jeder kann Texte ändern und wenn man seine Version sachlich begründen kann, dann spricht doch nichts dagegen 😕

    Hab den Inhalt mal geändert vom Nimm-Spiel, aber den Titel darf man nicht bearbeiten nur den Inhalt.



  • volkard schrieb:

    Optimizer schrieb:

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    willst du mich veralbern?

    Nein. Ich habe deine Frage, wie man obiges in Java löst, beantwortet. Der Ausgangspunkt war, dass anscheinend jemand in Java einen Präprozessor vermisst. Ich frage mich, wofür?



  • Optimizer schrieb:

    Der Ausgangspunkt war, dass anscheinend jemand in Java einen Präprozessor vermisst. Ich frage mich, wofür?

    ok. für java braucht man keinen.



  • SirLant schrieb:

    Hab den Inhalt mal geändert vom Nimm-Spiel, aber den Titel darf man nicht bearbeiten nur den Inhalt.

    sehe keine änderung. naja, vielleicht kommt das ja noch.



  • @SirLant
    du kannst Artikel aber verschieben (dh. umbennen). Und die Diskussions Seite nicht vergessen, dass hilft sehr, wenn man Leuten zeigen muss, dass man selber recht hat.



  • Also ich sehe die änderungen, wie gesagt nur im Text selbst kann ich als unangemeldeter was ändern, die Option "umbenennen" gibt es bei mir nicht.



  • die heisst ja auch "verschieben" 🙄



  • Deshalb hab ich das umbenennen ja auch in "" geschrieben, weil es verschieben heißt, laut dir, aber wie gesagt das verschieben find ich nicht, wo steht das



  • In der Leiste wo du auch zwischen Diskussion, Versionen und Bearbeiten hin und her klicken kannst. Ist vielleicht wirklich nur da, wenn man angemeldet ist.



  • volkard schrieb:

    ok. für java braucht man keinen.

    Was hat das mit Java zu tun?
    Z.B. geringe Änderungen für verschiedene Kunden lassen sich
    sehr elegant mit einem Präprozessor lösen.

    Jockel



  • Da jeder Compiler und jedes OS so sein eigenes Süppchen kocht gibt es auch genug Situationen, wo der Präprozessor einfach notwendig ist:

    Verschiedene Betriebssysteme - verschiedne Schlaf-Funktionen:

    #if defined(WIN32) || defined(__WIN32__) || defined(__NT__)
      #define WIN32_LEAN_AND_MEAN
      #define __MS__WINDOWS__
      #include<windows.h>
    #elif defined(__OS2__) || defined(OS2) // 32Bit only
      #define INCL_DOS
      #include<os2.h>
      #define Sleep(a) DosSleep(a)
    #elif defined(__DOS__) || defined(DOS) // 32Bit only
      #include<dos.h>
     #define Sleep(a) sleep(a)
    #elif defined(__unix) // Linux, *BSD, Solaris, QNX, ...
      #include<unistd.h>
      #define Sleep(a) sleep((a)/1000)
    #else
      #error Unsupported OS
    #endif
    

    Verschiedene Compiler - verschiedene Inline-ASM-Implementierungen:

    #if defined(__GNUC__)
      #define CPUID(p1,p2,p3,p4,p5) \
        asm volatile("push %%ebx ; cpuid ; mov %%ebx, %%esi ; pop %%ebx" \
          : "=a"(p1), "=S"(p2), "=c"(p3), "=d"(p4) : "a"(p5));
      #define RDTSC(v1,v2) asm volatile("rdtsc" : "=a"(v1), "=d"(v2));
    #elif defined(__BORLANDC__) || defined(__DMC__)
      #define CPUID(p1,p2,p3,p4,p5) \
        asm { mov eax, p5 ; cpuid ; mov p1, eax ; \
        mov p2, ebx ; mov p3, ecx ; mov p4, edx }
      #define RDTSC(v1,v2) asm { rdtsc ; mov v1,eax ; mov v2,edx }
    #elif defined(__WATCOMC__)
      void RDTSC(int &v1, int &v2);
      #pragma aux RDTSC = \
        ".586" \
        "push eax" \
        "push edx" \
        "rdtsc" \
        "mov esi, [esp]" \
        "mov [esi], edx" \
        "mov esi, [esp+4]" \
        "mov [esi], eax"  \
        "add esp, 8"  \
        parm [eax] [edx] \
        modify [eax edx];
      void CPUID (int &eax, int &ebx, int &ecx, int &edx, int val);
      #pragma aux CPUID = \
        ".586" \
        "push eax" \
        "push ebx" \
        "push ecx" \
        "push edx" \
        "mov eax, esi" \
        "cpuid" \
        "mov esi, [esp]" \
        "mov [esi], edx" \
        "mov esi, [esp+4]" \
        "mov [esi], ecx" \
        "mov esi, [esp+8]" \
        "mov [esi], ebx" \
        "mov esi, [esp+12]" \
        "mov [esi], eax" \
        "add esp, 16" \
        parm [eax] [ebx] [ecx] [edx] [esi] \
        modify [esi eax ebx ecx edx];
    #else
      #error unsupported compiler.
    #endif
    

    ...



  • @mastercpp
    Die Notwendigkeit eines Präprozessors für Kompiler die echten
    Maschinencode erzeugen hat auch niemand in Frage gestellt.



  • mastercpp! Und warum benutzt du nicht einfach eine andere Library, sprich für jedes OS eine eigene Library? Dann braucht man nur die Lib-Dateien austauschen und gut ist. Ich sehe bisher keinen Grund macros zu benutzten. Dein Beispiel ist eines wie ich es nicht machen würde.



  • Artchi schrieb:

    mastercpp! Und warum benutzt du nicht einfach eine andere Library, sprich für jedes OS eine eigene Library? Dann braucht man nur die Lib-Dateien austauschen und gut ist.

    Das halte ich aber für Quatsch. Angenommen du willst einfach ein anderes
    Programm starten (Linux/Windows). Es ändert sich nur eine Zeile
    (exec, bzw. CreateProcess) und dafür soll man ne eigene Lib schreiben?



  • Optimizer schrieb:

    volkard schrieb:

    Optimizer schrieb:

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    willst du mich veralbern?

    Nein. Ich habe deine Frage, wie man obiges in Java löst, beantwortet. Der Ausgangspunkt war, dass anscheinend jemand in Java einen Präprozessor vermisst. Ich frage mich, wofür?

    sorry, also ich benutze (bzw. bin grad dabei es zu lernen 🤡 ) java um anwendungen für handys zu schreiben! Da man standardmäßig nicht auf LL auf die Hardware zugreifen kann, bracucht man für jeden handytyp / marke eine eigene API! um das prog nicht für alle typen portieren zu müssen, empfehlen alle den gebrauch eines präprozessors! wenn man sagt in java gäbe es einen, kann man genausogut sagen, in c++ gäbe es einen gb!


Anmelden zum Antworten