Verschachtelt,mehrere Fragen...



  • zunächst einmal folgendes:

    #define getrandom(min, max)\\

    ((rand()%(int)(((max) + 1)-(min,max) \\ Konstante oder Ausdruck?

    \\

    \\

    und kann die Konstante (im selbem Ausdruck)

    min=10
    max=20

    oder gar

    min[10]
    max[20]

    so verwand werden??

    desweiteren:

    #define CONTAINING_RECORD( adress, type, field ) ((type*)(\

    (PCHAR)(adresse)-\
    (PCHAR)(&((type*)0)->field)))

    hätte ich gerne mal entschlüsselt!
    mit den Datentypen bin ich vertraut es geht mir (auch oben) nur um die Referenzierung/Ersetzung der Konstante.....

    Außerdem:

    betrachten Sie bitte die folgende Linkeroption:

    /STUB:filename (attaches a DOS-Stub-Programm to WIN32)

    what to hell is ment with STUB-Programm?

    Last but not least.....

    Wie kann man/ich mein VC++6.0-Toolsmenü dahingehend anpassen Libraries (*.lib) einsehen zu können und zwar nicht wie vom 'Vendor' mit auf den Weg gegeben in bin/hex-Format?

    Wir danken Ihnen für das Vertrauen das Sie uns entgegengebracht haben!

    Lächle und sei froh..denn es könnte schlimmer kommen!

    und ich lächelte und war froh und es kam schlimmer! ⚠

    Without big kiss from Buddy Love...



  • Buddy Love schrieb:

    zunächst einmal fplgendes:

    #define getrandom(min, max)\\

    ((rand()%(int)(((max) + 1)-(min,max) \\ Konstante oder Ausdruck?

    Ein imho _sehr_ komischer Ausdruck, denn er besteht aus Operanden und Operatoren.

    und kann die Konstante (im selbem Ausdruck)

    min=10
    max=20

    oder gar

    min[10]
    max[20]

    so verwand werden??

    Was willst du mir damit sagen? Meinst du, ob du min und max als Argumente an getrandom() übergeben kannst? Hängt vom Typ ab (der ja hier nicht angegeben ist). (Nebenbei, der Arrayname ist ein Zeiger auf sein erstes Element. D.h. wenn du das Array übergeben würdest, würde aus der &min[0] und &max[0] die Zufallszahl erzeugt.)

    desweiteren:

    #define CONTAINING_RECORD( adress, type, field ) ((type*)(\

    (PCHAR)(adresse)-\
    (PCHAR)(&((type*)0)->field)))

    hätte ich gerne mal entschlüsselt!
    mit den Datentypen bin ich vertraut es geht mir (auch oben) nur um die Referenzierung/Ersetzung der Konstante.....

    Obiges Konstrukt wird durch den Präprozessor ersetzt durch

    ((type*)((PCHAR)(adresse) - (PCHAR)(&((type*)0)->field)))
    

    Oder was meinst du?

    Mit dem Rest kenn ich mich überhaupt nicht aus.
    Btw.: Um schnellere Antworten zu erhalten, würde ich meine Posts leserlicher gestalten und besser strukturieren 🙂

    Caipi



  • int a = (5,3);  // a = 3
    

    Bei "(min,max)" bleibt nur "(max)" übrig, weil das Ergebnis des Sequenz-Operators (,) das letzte Element des Ausdrucks (max) ist.



  • Was willst du mir damit sagen? Meinst du, ob du min und max als Argumente an getrandom() übergeben kannst? Hängt vom Typ ab (der ja hier nicht angegeben ist). (Nebenbei, der Arrayname ist ein Zeiger auf sein erstes Element. D.h. wenn du das Array übergeben würdest, würde aus der &min[0] und &max[0] die Zufallszahl erzeugt.)

    Wie meinst du das hängt vom Typ ab?Welcher Typ ist nicht angegeben/wäre möglich?

    getrandom ist eine Konstante die durch den folgenden Ausdruck (min,max) ersetzt wird->siehe MACROS

    Im Folgendem wird doch erst min und max berechnet und als Argument an Stelle des Macroaufrufs im Quellcode verwand..... 😉

    Deshalb kann min oder max auch nicht an getrandom übergeben werden das ergibt keinen Sinn!Nein,mir ist es rätzelhaft wie sich der Ausdruck (ich glaube er hat auch noch einen syntaktischen Fehler-eine Klammer zu viel-) verhält und welches Ergebnis die Berechnung des Ausdrucks ergibt! 😋



  • Von dem hier

    #define getrandom(min, max) (rand()%(int)(((max) + 1)-(min,max))
    

    bleibt bloss das uebrig:

    #define getrandom(min, max) (rand()%(int)(((max) + 1)-max))
    

    "%" gibt den Divisionsrest von rand() / (max+1-max).



  • Buddy Love schrieb:

    /STUB:filename (attaches a DOS-Stub-Programm to WIN32)

    what to hell is ment with STUB-Programm?

    STUB = Stummel .

    Der Programmstummel dient bloss dazu, eine Meldung auszugeben, wenn das Programm unter DOS gestartet wird.

    (Man kennt das Problem ja: DOS-Benutzer will Windows Programm ausfuehren. 😉 )



  • Der Programmstummel dient bloss dazu, eine Meldung auszugeben, wenn das Programm unter DOS gestartet wird.

    (Man kennt das Problem ja: DOS-Benutzer will Windows Programm ausfuehren.

    Und welche Funktionalität im Hinblick auf den 'DOS-Stub' unterstützt der Compiler?Gibt es Einschränkungen hinsichtlich der Syntax im Quellcode für den Stub?

    MbG



  • [quote="Power Off"]Von dem hier

    #define getrandom(min, max) (rand()%(int)(((max) + 1)-(min,max))
    

    bleibt bloss das uebrig:

    #define getrandom(min, max) (rand()%(int)(((max) + 1)-max))
    

    "%" gibt den Divisionsrest von rand() / (max+1-max).[/quote]

    Ja stimmt,so war das....
    tnx 👍



  • Buddy Love schrieb:

    Und welche Funktionalität im Hinblick auf den 'DOS-Stub' unterstützt der Compiler?Gibt es Einschränkungen hinsichtlich der Syntax im Quellcode für den Stub?

    Normalerweise schreibt man den DOS-Stub nicht selber, er wird beim Linken automatisch angelegt.

    Wenn man ihn doch selber schreibt, dann muß man sich halt an die Regeln für DOS-Programmierung halten. Z.B. für Textausgabe wird meist der DOS-Interrupt 21h benutzt. Die 16-Bit DOS-Bibliotheken von Watcom und MSC z.B. erzeugen die Interrupt-Aufrufe automatisch, also kann man da auch printf() usw. aufrufen.



  • @Buddy Love: Bitte schalte die Tags auch ein! Es ist furchtbar deine Beiträge zu lesen...


Anmelden zum Antworten