Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    aiuto sui #define

    Ciao sto imparando il C++ e sono arrivato al capitolo dei define e stavo provando cercando di creare qualche semplice esercizio però il compilatore (dev c++) mi segna un errore mi sapreste dire quale è???
    codice:
    using namespace std;
    #include<iostream>
    #define inversion (x,y,m) (x)=(m);(y)=(x),(m)=(y);
    main ()
    {
         float x = 2.3;
         float y = 9.2;
         float m= 4.7;
         
         inversion x,y,m;
         
         cout << x <<endl ;
         cout << y <<endl;
         cout << m <<endl;
         system("PAUSE");
         return 0;
    }
    Grazie in anticipo Ciao!!!!!

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    #define inversion (x,y,m) (x)=(m);(y)=(x),(m)=(y);

    controlla virgole e punti e virgola nel define

  3. #3
    L'ho corretto così ma nn funziona lo stesso mi da questo errore
    codice:
    15 (((void)x, (void)y), m)' cannot be used as a function
    Questo è il codice correto ke non funziona però
    codice:
    using namespace std;
    #include<iostream>
    #define inversion (x,y,m) (x)=(m),(y)=(x),(m)=(y);
    main ()
    {
         float x = 2.3;
         float y = 9.2;
         float m= 4.7;
         
         inversion (x,y,m);
         
         cout << x <<endl;
         cout << y <<endl;
         cout << m <<endl;
         system("PAUSE");
         return 0;
    }
    Grazie....

  4. #4
    Perché non usi una funzione inline al posto del #define? I programmatori professionisti limitano l'uso delle macro e del preprocessore ai casi strettamente necessari.

    By now, you've probably realized why people don't really like using macros. They're dangerous, they're picky, and they're just not that safe.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    perchè sto seguendo la guida che ce su questo sito e ad ogni capitolo faccio un esercizio con le cose che ha introdotto......

  6. #6
    sta bene, ma tieni presente quello che ti ha detto pallinopinco, in c++ le macro possono essere evitate del tutto.
    ciao
    sergio

  7. #7
    Se fossi in te eviterei la guida presente su questo sito, si basa sulla vecchia notazione del C++:

    codice:
    #include <iostream.h>
    
    main()
    {
      cout << " CIAO MONDO! ";
      return (0);
    }
    Il C++ è un linguaggio potente quanto complesso, se vuoi davvero imparare a programmare in C++ ti conviene acquistare un buon libro e partire da quello.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  8. #8
    il fatto è che ho 14 anni e che imparare il c++ o faccio solo per hobbby e curiosità quindi una guida stravanata aggiornatissima sarebbe esagerata per me.....

    cmq la correzione del mio codece qualcuno la sa?????

  9. #9
    Originariamente inviato da gianky93
    il fatto è che ho 14 anni e che imparare il c++ o faccio solo per hobbby e curiosità quindi una guida stravanata aggiornatissima sarebbe esagerata per me.....
    Non hai capito: la tua guida si riferisce ad una vecchia versione non standard del C++, per cui stai imparando pratiche sbagliate; non è faccenda di esagerare, è faccenda di imparare concetti corretti. Prenditi una guida aggiornata.
    Anch'io ho iniziato a studiare il C++ più o meno alla tua età (forse un annetto più tardi), e mi sono sincerato di prendermi un buon libro che descrivesse correttamente il C++ standard.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Originariamente inviato da gianky93
    cmq la correzione del mio codece qualcuno la sa?????
    Codice PHP:
    //
    // Compiled and tested with:
    // i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
    //
    // Compile command:
    // $ g++ -Wall -ansi -pedantic main.cpp
    //

    #include <iostream>

    #define inversion(x,y,m) do {(m)=(x); (x)=(y); (y)=(m);} while (0)

    using namespace std;

    int main ()
    {
        
    float x 2.3;
        
    float y 9.2;
        
    float m4.7;
        
        
    inversion (x,y,m);
        
        
    cout << << endl ;
        
    cout << <<endl;
        
    cout << <<endl;
        
    // system("PAUSE");
        
    return 0;


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.