|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Quote:
|
|
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Perché? Allora non lo conosco neanche io...
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#23 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
questo è quello che produce doxygen dal progetto:
![]() (spero si veda l'immagine, ho usato gmail) se nelle classi base prevedi che si possa usare una funzione piuttosto che un'altra o che si possa usare in un modo piuttosto che in un altro, avrai per forza di cose dei parametri che potrebbero, o non, essere utilizzati. spiegato da cani ma devo ancora svegliarmi
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Non si può fare dell'overloading o utilizzo di parametri opzionali?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
se fai una classe base dove prevedi che le classi derivate possano (non sono obbligate) usare una serie di parametri, poi è impossibile usarli tutti per forza. Per esempio nel mio sistema ho 3 parametri che devo portare appresso quasi ovunque perchè mi servono per riempire una lista di eventi. Ricevo un evento dall'esterno, scendo giù fino alla classe LLElement che potrebbe attivare qualcosa (p. es. accende un led -> evento) e torno su fino al motore che legge gli eventi e li codifica per spedirli al chiamante. Questi 3 parametri spesso non sono usati ed ecco spiegati i warnings
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Non c'è modo di farli opzionali?
Codice:
int MiaFunzione(Evento *primo, Evento *secondo = NULL, Evento *terzo = NULL)
{
if (secondo)
{
// ...
}
if (terzo)
{
// ...
}
}
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#27 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
in quello schema ci sono 23 classi, alle quali in teoria dovrebbero corrispondere altrettanti files sorgenti (estensione .cpp); se il vostro g++ produce 150 linee di output allora sicuramente oltre ai parametri inutilizzati c'è anche qualcos'altro che non va, perché ci sono 150-23=127 linee di troppo...
![]() fammi indovinare: scrivete tutti codice di merda e avete 127 warnings? farete meglio a togliere quel -Wall, non fa proprio per voi poveri niubbetti
|
|
|
|
|
|
#28 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
dimenticavo che tu sei un utente Windows quindi al 99% non sai cos'è un makefile perchè ti basta premere ![]() per compilare
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#29 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() voi avete una valanga di warning, di' la verità ![]() PS: dal momento che in genere quando ci si va di linea di comando su Windows non si usare direttamente nmake ma build, mi piacerebbe poter dire di non conoscere i makefiles per nulla ma purtroppo non è così: col MinGW ci ho dovuto avere a che fare pure io |
|
|
|
|
|
|
#30 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
allora, visto che stiamo cercando il pelo nell'uovo, le linee sono esattamente 109 (con il -Wno-unused), i warnings 35 di cui 30 così: Codice:
/home/<trallallero>/workspace/<studente>.dev/src/nat/ConnGlobals.h:100: warning: declaration of ‘server_port’ shadows a member of 'this' gli altri 5 sono miei: 2 cosi: Codice:
control reaches end of non-void function end of non-void function gli altri 3 (c'ho fatto caso adesso) son quegli strani warning quando dichiari membri nella classe in un certo ordine e poi li inizializzi nel costruttore Codice:
: membro1(val), membro2(val), ... il mio codice è perfetto edit: comunque ogni warning potrebbe avere 2 righe /home/<trallallero>/workspace/<studente>.dev/src/nat/ConnGlobals.h: In constructor ‘OPEN_SOCKET:: OPEN_SOCKET(COMMON_SOCKET_TYPE, COMMON_ADDRESS_TYPE, COMMON_SOCKET_PROTOCOL, const char*, unsigned int)’: /home/<trallallero>/workspace/<studente>.dev/src/nat/ConnGlobals.h:100: warning: declaration of ‘server_port’ shadows a member of 'this' e, avendo fatto una cosa fatta bene, divisa in più directories, ogni volta che il make cambia dir ti avverte -> = linea in più
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve Ultima modifica di trallallero : 27-06-2008 alle 11:55. |
|
|
|
|
|
|
#31 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Codice:
int MiaFunzione(int key)
{
switch (key)
{
case 0:
return ERRORE;
case 1:
return SUCCESSO;
default:
return SCONOSCIUTO;
}
}
Codice:
int MiaFunzione(int key)
{
switch (key)
{
case 0:
return ERRORE;
case 1:
return SUCCESSO;
}
return SCONOSCIUTO;
}
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#32 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]() ma si, un warning o 2 così non mi preoccupano, ma una miriade di "parameter not used" mi scocciano grazie comunque
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#33 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Meglio ancora:
Codice:
int MiaFunzione(int key)
{
int ret = 0;
switch (key)
{
case 0:
ret = ERRORE;
break;
case 1:
ret = SUCCESSO;
break;
default:
ret = SCONOSCIUTO;
break;
}
return ret;
}
|
|
|
|
|
|
#34 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
si dice peste e corna della notazione ungherese, ma non c'è niente da fare: quando si programma in C o in C++ è la migliore (in questo caso avrebbe evitato il warning). Quote:
|
||
|
|
|
|
|
#35 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#36 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#37 | ||
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Per il resto io non ho tempo da perdere, non mi metto a correggere il codice altrui. Se qualcosa va male ognuno ha le sue responsabilità. allora ditelo che non sapete programmare ![]() dato questo esempio in un file test.c Codice:
#include <stdio.h>
typedef enum
{
A = 1,
B = 2,
C = 3,
} eXXX;
int main()
{
eXXX x = A;
switch (x)
{
case A:
break;
};
return 0;
}
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
||
|
|
|
|
|
#38 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Perdonami, ma questa era del tutto gratuita, e te la potevi benissimo risparmiare: non conoscere a memoria tutti i warning di un compilatore non significa non saper programmare (e la mia era una domanda...).
Mi dimostri più che altro di essere tu quello che non ha idea della sintassi da rispettare (si vedano la virgola in eccesso dopo l'enumerazione della C e il punto e virgola inutile dopo il blocco dello switch), mi dimostri anche di non avere idea del fatto che se gcc vuole ricordare ai suoi utenti che un valore non è stato considerato in uno switch, non vuol dire che lo debbano fare tutti. Provato giusto ora sotto il compilatore Microsoft, livello di warning massimo, nemmeno l'ombra di un errore segnalato: Codice:
#include <iostream>
using namespace std;
enum prova
{
A, B
};
void gestisci(enum prova);
int main()
{
gestisci(A);
gestisci(B);
#ifdef _WIN32
getchar();
#endif
return 0;
}
void gestisci(enum prova P)
{
switch (P)
{
case A:
cout << "Ciao" << endl;
break;
}
}
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 27-06-2008 alle 14:33. |
|
|
|
|
|
#39 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Con 71104 ci piamo sempre pel culo ma scherzosamente (io almeno) e io forse ho il difetto di essere troppo ironico e scherzo facendo finta di essere serio. Per quanto riguarda l'esempio non è che mi son messo a scriverlo perfetto, era solo per far vedere che il gcc da un warning se non gestisci una enum, tutto quì. Per quanto riguarda Windows ... beh ... questa è un'ulteriore dimostrazione che fa cagare ![]() PS: la virgola dopo l'ultima enum è utilizzatissima invece, proprio in questo progetto l'ho usata in questo modo: Codice:
class LLBaseEntity
{
public:
...
typedef enum
{
#include "LLEntityTypes.def"
} LL_ENTITY_TYPE, LLET; //!< Entity types
...
};
Codice:
Entità, Codice:
, Entità edit: e se proprio dovevi farmi notare un'errore, mica è il punto e virgola dopo la switch, ma il nome della enum
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#40 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Ok ok freno anch'io e ti chiedo scusa per il tono...
Quote:
D'oh, il mio commento non era riguardo al fatto che magari Windows faccia cagare (e se noti dalla mia firma sono un prode paladino del DebianClan, non sono certo a favore di Microsoft e famiglia Per il fatto della virgola, be', al momento non l'ho nemmeno provata, ma ero certo che scrivere un'enumerazione in quel modo generasse un errore (ergo: mi ricordo in passato di aver fatto anch'io una cosa simile, ma con poca felicità di gcc, magari con gcc 4.x funziona). ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:36.























