[C] error: expected unqualified-id before 'int'

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JaWSnl
  • Registratie: Maart 2007
  • Laatst online: 13-06 15:18
Ik ben bezig met een project-opdracht waarin ik met message-queue's in POSIX informatie tussen processen kan uitwisselen. Voor de grotere hoeveelheden data moet er een shared memory gebruikt worden. Dat even ter inleiding, wat niet direct belangrijk is voor het probleem.

Dit is de volledige code van de file sharedio.h. Het is misschien niet allemaal belangrijk, maar misschien zit de error ergens in een onverwacht stuk.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//SharedIo.h

#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <mqueue.h>
#include <string.h>

#define QUEUE_NAME_START "/es7_queue_"
#define QUEUE_NAME_SERVER "/es7_queue_server"
#define SMEM_NAME_START "/es7_smem_"
#define PRIORITY 1
#define SHM_SIZE 256

enum es7_message_types{
    OPEN,
    CLOSE,
    READ,
    WRITE,
    FILESIZE
};

struct es7_message{
    enum es7_message_types type,
    int sender_pid,
    int size    
};


int create_shared_mem(char *name);
int use_shared_mem(char *name, void *vaddr);
void unmap_shared_mem(void *vaddr);
void close_shared_mem(int shm_client, void *vaddr);
void delete_shared_mem();

char* get_queue_name(int pid);
char* get_mem_name(int pid);
mqd_t open_message_queue(char *name, size_t msgsize);


Als ik deze make dan krijg ik op dit moment de volgende output, alle andere errors heb ik er al uit gehaald.


code:
1
2
3
4
5
6
7
janwillem@ubuntu:~/Documents/ES7_O1$ make
g++ -O2 -Wall -lrt client.c sharedIo.c -o client
In file included from client.c:10:
sharedIo.h:25: error: expected unqualified-id before 'int'
In file included from sharedIo.c:5:
sharedIo.h:25: error: expected unqualified-id before 'int'
make: *** [client] E


Maar ik kan maar niet vinden wat het probleem veroorzaakt. Wie heeft er een idee? Mis ik een include? Staat er ergens een karakter te veel (semicolon, curly bracket)?

There are only 10 types of people in the world: those who understand binary and those who don't.


Acties:
  • 0 Henk 'm!

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

binnen je struct ; ipv , gebruiken?

If you choose to criticise you choose your enemies


Acties:
  • 0 Henk 'm!

  • VyperX
  • Registratie: Juni 2001
  • Laatst online: 14-08 13:04
Ik wou het net zeggen :)
Velden in een struct scheid je met semi-colons, niet comma's.

My Dwarf Fortress ASCII Reward: ~~@~~####,.".D",.B""


Acties:
  • 0 Henk 'm!

  • JaWSnl
  • Registratie: Maart 2007
  • Laatst online: 13-06 15:18
woohoo nu is het opgelost :) ok bedankt heren!

Dat heb je soms, dan zit je zo in de code dat je dat soort obvious dingen mist. Maar goed, zelfs mn project-begeleider had het over het goofd gezien :P

There are only 10 types of people in the world: those who understand binary and those who don't.


Acties:
  • 0 Henk 'm!

  • NC83
  • Registratie: Juni 2007
  • Laatst online: 21-08 21:44
JaWSnl schreef op vrijdag 22 januari 2010 @ 22:54:
woohoo nu is het opgelost :) ok bedankt heren!

Dat heb je soms, dan zit je zo in de code dat je dat soort obvious dingen mist. Maar goed, zelfs mn project-begeleider had het over het goofd gezien :P
Ja dat komt omdat het heel erg makkelijk is om een ; te missen, de mooiste error is als je een ; onder een struct in een header mist die wat het laatste element in die header is. De error die je dan krijgt treed op in de cpp file en daar is niks mis mee, zulke errors leren je om altijd naar ; te zoeken in declaraties.

ex-FE Programmer: CMR:DiRT2,DiRT 3, DiRT Showdown, GRID 2, Mad Max