|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
[c] stampare messagi in fade di debug
salve.
devo fare un progetto e nelle specifiche mi chiede questo. Direttive al preprocessore Utilizzando le direttive al preprocessore definire una costante DEBUG. Quando DEBUG non sarà posta a 0, saranno stampati alcuni messaggi utili in fase di debugging; diversamente tali messaggi non saranno stampati. e non riesco a capire cos adevo fare. mi potreste aiutare grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Codice:
int main() {
printf("O hai!\n");
#ifdef DEBUG
printf("ZOMG HAAAXXXX!\n");
#endif
printf("Kthxbai!\n");
return 0;
}
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Quote:
Codice:
#if (DEBUG) .. #endif Codice:
#if defined(DEBUG) && (DEBUG) .. #endif |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Vero... sorry. E' che mi sembra una cagata. O la definisci o non la definisci.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
anche perché i compilatori la definiscono da soli compilando in modalità debug
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
scate ma non riesco a capire.
io faccio #DEFINE DEBUG 0 poi se non ho capito male devo fare #if (DEBUG > 0) printf("hhhhhhhhhhh"); pero non riesco a capire dove li devo mettere questi pezzi di codice. li devo mettere a ogni variabile ? oppure dopo ogni funzione ? poi un altra cosa, siccome il progetto comprende diversi file, questi messaggi vanno messi solo nel file contenente il main oppure in tutti i file.? grzie. Ultima modifica di processore : 11-10-2010 alle 12:39. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
decidi tu dove è utile
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
il problema e che non capisco prorpio l'utilita di fare queste cose.
per questo avrei bisogno di chiarimenti. forse vanno messe per testare la buona riuscita delle funzioni ? vanno messe solo nel file del main ? |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
be', in generale in fase di debug è utile controllare che le variabili assumano i giusti valori, che in certi casi si entri in un if piuttosto che nell'else.. sei tu a sapere cosa fa il tuo programma
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
il mio programma e una calcolatrice che prende un file in imput e scrive il risultato dell'operazione in un file di output.
scusa se faccio cosi tante domande. ma non ho minimamente idea di dove mettere queste condizioni. potrebbe andare bene se le metto nelle variabili dove vengono memorizzate i numeri presi dal file in imput ? siccome uso anche uno stack va messa anche qualcuna nello stack ? andrebbe bene mettere una per testare la lettura e la scrittura dal / su file ? Ultima modifica di processore : 11-10-2010 alle 14:24. |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
non ce nessuno che mi puo aiutare.
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
ma non c'è un modo giusto di fare una cosa del genere, servono per fare il debug, se non servono a te non servono a nessuno
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
hai raggione.
pero il problemae che serve per il progetto e il prof ha detto che li devo mettere. io ho provato a fare cosi. #define DEBUG 1 p_File_in = fopen(NF_in,"r"); #if DEBUG > 0 printf("file aperto correttamente \n"); #else printf("errore"); #endif system("PAUSE"); e corretto ? pro quando compilo anche se metto un nome di un file che non esiste mi dice lo stesso file aperto correttamente se il file non esiste non dovrebbe entrare nel else ? grazie |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 163
|
Ma che centra!
Quello è pre-processore.. non viene eseguito durante l'esecuzione del programma! Un conto è un else di un costrutto if-else del C, un conto è un if - else di preprocessore!... Poi, tra l'altro, se non erro, l'else del preprocessore non era #else, ma #elif ..Ti consiglio di leggerti qualche guida di C Ciao!
__________________
MSI B550-A PRO|Ryzen™ 5 3600|Freezer 13 PRO|RX 6600|CORSAIR CX600|Crucial P3 Plus 1TB|BL2K8G32C16U4B 3200 MHz|Q27G2G4
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Quote:
Codice:
p_File_in = fopen(NF_in,"r");
if (!p_File_in)
printf("Errore");
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:22.




















