Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - funzione a 3 parametri in visual c++
Forum - C/C++ - funzione a 3 parametri in visual c++

Avatar
haberdasherv (Member)
Newbie


Messaggi: 17
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 18:04
Lunedì, 13/06/2011
Codice sorgente - presumibilmente C++

  1. void funzione1(int val1, int val2, char [10] val3) {
  2.                 if (val2-val1==1) MessageBox::Show("1");
  3.                 if (val2-val1==-1) MessageBox::Show("-1");
  4.                 MessageBox::Show(val3);
  5.         }


essendo alle prime armi con il c++ sto cercando di capire l'uso e la dichiarazione delle funzioni. ho provato a scrivere il codice indicato sopra ma il compilatore non lo riconosce come valido dandomi questi messaggi:
Codice sorgente - presumibilmente VB.NET

  1. 1>------ Inizio compilazione: Progetto: provac++1, Configurazione: Debug Win32 ------
  2. 1>  provac++1.cpp
  3. 1>c:\users\123\documents\visual studio 2010\projects\provac++1\provac++1\Form1.h(110): error C2146: errore di sintassi: ')' mancante prima dell'identificatore 'val3'
  4. 1>c:\users\123\documents\visual studio 2010\projects\provac++1\provac++1\Form1.h(110): error C3646: 'val3': identificatore di override sconosciuto
  5. 1>c:\users\123\documents\visual studio 2010\projects\provac++1\provac++1\Form1.h(110): error C2059: errore di sintassi: ')'
  6. 1>c:\users\123\documents\visual studio 2010\projects\provac++1\provac++1\Form1.h(114): error C2065: 'val3': identificatore non dichiarato
  7. ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========



sapreste dirmi come mai?

PM
Avatar
inconcepibile (Member)
Newbie


Messaggi: 11
Iscritto: 30/05/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:32
Lunedì, 13/06/2011
Per passare un vettore ad una funzione o procedura va fatto così:
void funzione(tipo vettore[])
Cioè vanno messe la parentesi quadre dopo il nome e senza la dimensione.

Quindi nel tuo caso diventa:
Codice sorgente - presumibilmente C++

  1. void funzione1(int val1, int val2, char val3[]) {
  2.        if (val2-val1==1) MessageBox::Show("1");
  3.        if (val2-val1==-1) MessageBox::Show("-1");
  4.        MessageBox::Show(val3);
  5.        }


mi hai anticipato di 2 minuti! :) attenzione però alle strutture di controllo. if - else if - else - Pitagora - 13/06/11 18:35
ehh.. ho fatto troppo di fretta stavolta! - inconcepibile - 13/06/11 18:36
grazie a entrambi, il problema era proprio quello. - haberdasherv - 13/06/11 22:06
PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:34
Lunedì, 13/06/2011
Penso che il codice corretto sia questo:

Codice sorgente - presumibilmente C++

  1. void funzione1(int val1, int val2, char val3[]) {
  2.         if (val2-val1==1) MessageBox::Show("1");
  3.         else if (val2-val1==-1) MessageBox::Show("-1");
  4.         else MessageBox::Show(val3);
  5. }



Un lettura qui ---> http://programmazione.html.it/guide/lezione/1184/passaggio ... (Passaggio di array a funzioni) e un ripasso veloce alla struttura if - else if - else, perché penso che tu abbia ancora dei dubbi :k:

PM
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 21:53
Lunedì, 13/06/2011
comunque se vuoi imparare il C++ allora stai sbagliando strada.
Quello è codice C++ Managed (che usa quindi .NET e non il codice nativo) quindi è una cosa profondamente diversa.


Stai attento a cosa studi e cosa vuoi studiare

il mio interesse(anche se forse detto così può sembrare un pò idiota) è principalmente la programmazione di videogiochi. per fare ciò prima mi sono imparato il pascal, per poi passare al delphi che mi permetteva di fare ciò in un modo piuttosto intuitivo tramite GLScene. mi sono accorto però che - haberdasherv - 13/06/11 22:04
GLScene non mi permetteva di usare tutti gli strumenti di cui avevo bisogno e le applicazioni che creavo erano sempre molto lente. così ho deciso di passare al c++ e ricominciare da 0 il percorso che mi ero proposto, questa volta però con irrlicht che sembra disporre degli strumenti che mi servono - haberdasherv - 13/06/11 22:05
nonchè di una velocità di esecuzione notevolmente maggiore. (questo era per far capire che il c++ mi serve solo come mezzo per sfruttare irrlicht, mentre la scelta del visual c++ sta nel fatto che intuitivamente mi sembra più vicino al delphi.) OT: forse ho scritto un pò troppo XD - haberdasherv - 13/06/11 22:05
se questi sono i motivi non ha senso usare c++...imparati C# e basta - lorenzo - 14/06/11 08:58
PM