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++ - Dev-C++ e #define
Forum - C/C++ - Dev-C++ e #define

Avatar
giulioscatto (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/08/2009

Segnala al moderatore
Postato alle 21:52
Giovedì, 30/06/2011
Salve a tutti.
Non so che dire, chiedo aiuto.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "header1.h"
  4.  
  5. #define BUFFER_SIZE = 0x8000
  6.  
  7. int main(int argc, char* argv[]){
  8.     int fd;
  9.     char* buffer = h_malloc(BUFFER_SIZE);
  10.     system("pause");
  11.     return 0;  
  12. }



Il compilatore mi da errore alla riga "char* buffer = h_malloc(BUFFER_SIZE);" informandomi di un "parse error before '=' token ".
L'errore sembrerebbe derivare dall'utilizzo di BUFFER_SIZE poiché se scrivo direttamente 0x8000 il tutto si compila splendidamente.
E' abbastanza frustrante la storia... Dopo 5 righe di codice semplice semplice già commetti un errore che non sai da che parte prendere... :blush: scoppio!!

Avete la soluzione alla mia frustrazione?
Grazie mille.
Giulio

__________________________________________________________

Codice sorgente - presumibilmente C#

  1. void fatal(char* msg) {
  2.         char emsg[128];
  3.         printf(emsg,"[!DEBUG!] error in %s:",msg);
  4.         perror(emsg);
  5.         exit(-1);
  6. }
  7.  
  8. void* h_malloc(unsigned int size) {
  9.         void *ptr;
  10.         if ((ptr = (void*)malloc(size)) == NULL) fatal("h_malloc() on memory allocation");
  11.         return ptr;
  12. }


Ultima modifica effettuata da giulioscatto il 30/06/2011 alle 22:11
PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Up
2
Down
V
Segnala al moderatore
Postato alle 22:13
Giovedì, 30/06/2011
Stai utilizzando #define in maniera sbagliata:

Codice sorgente - presumibilmente C/C++

  1. #define BUFFER_SIZE 0x8000



Che e' praticamente quello che ti ha detto il messaggio di errore... il = non ci sta'.

oddio... che umiliazione... Ok grazie mille per aver fatto la fatica di controllare per me! Mamma mia, devo cambiare gli occhiali! - giulioscatto - 30/06/11 22:15
capita, non ti preoccupare... leggi sempre attentamente i messaggi di errore del compilatore... a volte sono confusionari, ma a volte sono piuttosto ben precisi. - pierotofy - 30/06/11 22:17
Eh già, infatti ora ho capito a quale '=' faceva riferimento! - giulioscatto - 30/06/11 22:21


Il mio blog: https://piero.dev
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6381
Iscritto: 03/01/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 22:13
Giovedì, 30/06/2011
Ah ... ma hai scritto

#define BUFFER_SIZE = 0x8000

e invece deve essere

#define BUFFER_SIZE 0x8000


Fai attenzione ...

Grazie mille!!! Ma davvero mi vado a prendere un nuovo paio di occhiali! Grazie ancora - giulioscatto - 30/06/11 22:15


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6381
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 22:05
Giovedì, 30/06/2011
Cosa c'è dentro

#include "header1.h"

Come è definita la funzione

h_malloc

?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM