OVH Cloud OVH Cloud

[HS] Problème de C

4 réponses
Avatar
Jeremy Monnet
Bonjour,

d=E9sol=E9 pour ce hors-sujet.

J'essaie de me mettre un peu au C, et en ce moment je suis en train de lire=
le=20
tutoriel sur ncurses.
Et mon probl=E8me est que l'un des exemples ne se compile pas ...
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/windows.html#OTHERBORDE=
RFUNCS

me donne :=20
example8.c:17: error: two or more data types in declaration of `type name'
example8.c:93: error: two or more data types in declaration of `type name'
example8.c: Dans la fonction =AB create_box =BB:
example8.c:93: error: parameter name omitted
example8.c:102: error: erreur d'analyse syntaxique before "_Bool"
example8.c: Hors de toute fonction :
example8.c:113: error: erreur d'analyse syntaxique before "else"
example8.c:118: attention : noms de param=E8tres (sans type) dans la d=E9cl=
aration=20
de fonction
example8.c:118: attention : data definition has no type or storage class
example8.c:120: error: erreur d'analyse syntaxique before '}' token

Et l=E0 ... je ne comprends pas ! Enfin, sauf que effectivement il 2 types =
dans=20
la d=E9claration de la structure WIN, mais si l'auteur l'a fait, c'est que =
ca=20
ne doit normalement pas g=E9ner ?

Merci pour toute aide !

Jeremy
=2D-=20
=2D-----
Linux Registered User #317862

This mail was sent with 100% free software.

4 réponses

Avatar
tnemeth
Selon Jeremy Monnet :

| Bonjour,

Salut,


| désolé pour ce hors-sujet.

Pas grave :)


| J'essaie de me mettre un peu au C, et en ce moment je suis en train
| de lire le
| tutoriel sur ncurses.
| Et mon problème est que l'un des exemples ne se compile pas ...
|
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/windows.html#OTHERBORDERFUNCS
|
| me donne :
| example8.c:17: error: two or more data types in declaration of `type
| name'
| example8.c:93: error: two or more data types in declaration of `type
| name'

Erk :(


| example8.c: Dans la fonction « create_box »:
| example8.c:93: error: parameter name omitted
| example8.c:102: error: erreur d'analyse syntaxique before "_Bool"

Ici il faut que tu changes le nom de la variable "bool" en autre
chose : en effet, depuis quelques temps le _type_ bool existe et
du coup il y a conflit entre le type et le nom de la variable :)


| example8.c: Hors de toute fonction :
| example8.c:113: error: erreur d'analyse syntaxique before "else"

À partir de là c'est toujours à cause de "bool" que les erreurs
se présentent.


| Et là ... je ne comprends pas ! Enfin, sauf que effectivement il 2
| types dans
| la déclaration de la structure WIN,

Je ne vois pas trop où.

typedef struct _WIN_struct {
int startx, starty;
int height, width;
WIN_BORDER border;
}WIN;

De quels "2 types" parles-tu ?

Essaye de voir si le type WIN n'existe pas déjà par ailleurs.
Pour faire simple remplace WIN par WININFO (par exemple) et
recompile.

Thomas.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jeremy Monnet
Tout bon ! j'ai remplacé par WIN_INFO et bool2, ca compile, et le program me
fait ce qu'il est censé faire en plus ! :-)

Merci ! Du coup une autre question : Est-ce qu'on peut savoir d'une maniè re ou
d'une autre quand un _type_ existe déjà, ou est-ce que l'expérience s eule
parlera ? (parce que ce genre de bêtise m'arrivera encore souvent je pens e !)

Jeremy

Le Friday 4 March 2005 11:43, a écrit :
Selon Jeremy Monnet :
| Bonjour,

Salut,

| désolé pour ce hors-sujet.

Pas grave :)

| J'essaie de me mettre un peu au C, et en ce moment je suis en train
| de lire le
| tutoriel sur ncurses.
| Et mon problème est que l'un des exemples ne se compile pas ...

http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/windows.html#OTHERBOR DE
RFUNCS

| me donne :
| example8.c:17: error: two or more data types in declaration of `type
| name'
| example8.c:93: error: two or more data types in declaration of `type
| name'

Erk :(

| example8.c: Dans la fonction « create_box »:
| example8.c:93: error: parameter name omitted
| example8.c:102: error: erreur d'analyse syntaxique before "_Bool"

Ici il faut que tu changes le nom de la variable "bool" en autre
chose : en effet, depuis quelques temps le _type_ bool existe et
du coup il y a conflit entre le type et le nom de la variable :)

| example8.c: Hors de toute fonction :
| example8.c:113: error: erreur d'analyse syntaxique before "else"

À partir de là c'est toujours à cause de "bool" que les erreurs
se présentent.

| Et là ... je ne comprends pas ! Enfin, sauf que effectivement il 2
| types dans
| la déclaration de la structure WIN,

Je ne vois pas trop où.

typedef struct _WIN_struct {
int startx, starty;
int height, width;
WIN_BORDER border;
}WIN;

De quels "2 types" parles-tu ?

Essaye de voir si le type WIN n'existe pas déjà par ailleurs.
Pour faire simple remplace WIN par WININFO (par exemple) et
recompile.

Thomas.



--
------
Linux Registered User #317862

This mail was sent with 100% free software.
Avatar
tnemeth
Selon Jeremy Monnet :

| Tout bon ! j'ai remplacé par WIN_INFO et bool2, ca compile, et le
| programme
| fait ce qu'il est censé faire en plus ! :-)

:)


| Merci ! Du coup une autre question : Est-ce qu'on peut savoir d'une
| manière ou
| d'une autre quand un _type_ existe déjà, ou est-ce que l'expérience
| seule
| parlera ? (parce que ce genre de bêtise m'arrivera encore souvent je
| pense !)

Normalement c'est le compilateur qui t'en informe. Des messages
d'erreurs tels que ceux que tu as eu sont typiques de ce genre
de problèmes lorsqu'on utilise du vieux code.

Il y a toutefois une manière simple de savoir si un type existe :
il faut chercher dans les includes du système ;)
rgrep type /usr/include
Mais ça peut être fastidieux...

Thomas.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Cedric Cellier
Jeremy Monnet wrote:
Merci ! Du coup une autre question : Est-ce qu'on peut savoir d'une manière ou
d'une autre quand un _type_ existe déjà, ou est-ce que l'expérience seule
parlera ? (parce que ce genre de bêtise m'arrivera encore souvent je pense !)



Pour les types standard, il faut évidement les connaitre.
Pour les types définis dans les labyrinthes d'inclure, voir l'option -E
de gcc -> tu récupère le flux déjà préprocessé, donc ca deviens simple
de voir qui défini quoi et où.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact