Mon conseil, apprenez le C ou allez voir dans fr.comp.lang.basic
C'est quand même un peu rude, ça ... Pour info, fr.comp.lang.c n'est pas réservé aux experts en C, mais aussi à ceux qui n'y connaissent rien et veulent apprendre ...
Désolé, je prend toujours tout au premier degré :) (mais c'était quand même un peu rude)
-- Hamiral
Hamiral wrote:
Harpo wrote:
Vous êtes rigolo mais téméraire.
Mon conseil, apprenez le C ou allez voir dans fr.comp.lang.basic
C'est quand même un peu rude, ça ...
Pour info, fr.comp.lang.c n'est pas réservé aux experts en C, mais aussi à
ceux qui n'y connaissent rien et veulent apprendre ...
Désolé, je prend toujours tout au premier degré :) (mais c'était quand même
un peu rude)
Mon conseil, apprenez le C ou allez voir dans fr.comp.lang.basic
C'est quand même un peu rude, ça ... Pour info, fr.comp.lang.c n'est pas réservé aux experts en C, mais aussi à ceux qui n'y connaissent rien et veulent apprendre ...
Désolé, je prend toujours tout au premier degré :) (mais c'était quand même un peu rude)
Comment faut-il faire pour exécuter un programme ?
'comme ça' dans le sens de 'un tel' et non de 'de cette façon'...
C'est vrai que de lancer un programme qui comporte de tels warnings est plutôt risqué...
-- A+
Emmanuel Delahaye
Emmanuel Delahaye
Ton bout de code m'a aidé à avancer, voilà ce que j'ai fait ensuite: (une compilation réussie est un exploit à mon niveau! ;-) )
ex2.c: # include <stdio.h> # include <stdlib.h> # include <time.h>
main (void) { time_t t=time(1); srandom(t); int rnd=rand(); printf("%i",rnd); rnd=random(); printf("%i",rnd); }
gcc -o ex2 ex2.c
On t'a pourtant indiqué comment compiler :
gcc -Wall -W[extra] -O2 -o ex2 ex2.c
ex2.c: In function 'main': ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer without a cast
C'est pire que ça. J'ai des fonctions inconnues...
Project : OP code Compiler : GNU GCC Compiler (called directly) Directory : C:devforumsOP -------------------------------------------------------------------------------- Switching to target: default Compiling: main.c main.c:41: warning: return type defaults to `int' main.c: In function `main_': main.c:42: warning: passing arg 1 of `time' makes pointer from integer without a cast main.c:43: error: implicit declaration of function `srandom' main.c:43: warning: nested extern declaration of `srandom' main.c:46: error: implicit declaration of function `random' main.c:46: warning: nested extern declaration of `random' Process terminated with status 1 (0 minutes, 0 seconds) 2 errors, 4 warnings
ex2.c: # include <stdio.h> # include <stdlib.h> # include <time.h>
main (void) { time_t t=time(NULL); srandom(t); int rnd0=rand(); int rnd1=random(); printf("rnd0:%inrnd1:%i",rnd0,rnd1); }
Idem : fonctions inconnues.
gcc -o ex2 ex2.c;./ex2
rnd0:245041075 rnd1:39158599 le shell a retourné 28
rnd0:1370453719 rnd1:409898370 le shell a retourné 30
Que signifie "28 ou "30"?
Ce sont les valeurs retournées par ton programme. Je rappelle que main() retourne int (type explicite obligatoire en C99) et qu'un return explicite est obligatoire en C90, sinon, la valeur retournée est indéterminée (28, 30, pourquoi pas...)
Ton bout de code m'a aidé à avancer, voilà ce que j'ai fait ensuite:
(une compilation réussie est un exploit à mon niveau! ;-) )
ex2.c:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
main (void)
{
time_t t=time(1);
srandom(t);
int rnd=rand();
printf("%i",rnd);
rnd=random();
printf("%i",rnd);
}
gcc -o ex2 ex2.c
On t'a pourtant indiqué comment compiler :
gcc -Wall -W[extra] -O2 -o ex2 ex2.c
ex2.c: In function 'main':
ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer
without a cast
C'est pire que ça. J'ai des fonctions inconnues...
Project : OP code
Compiler : GNU GCC Compiler (called directly)
Directory : C:devforumsOP
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c:41: warning: return type defaults to `int'
main.c: In function `main_':
main.c:42: warning: passing arg 1 of `time' makes pointer from integer
without a cast
main.c:43: error: implicit declaration of function `srandom'
main.c:43: warning: nested extern declaration of `srandom'
main.c:46: error: implicit declaration of function `random'
main.c:46: warning: nested extern declaration of `random'
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 4 warnings
ex2.c:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
main (void)
{
time_t t=time(NULL);
srandom(t);
int rnd0=rand();
int rnd1=random();
printf("rnd0:%inrnd1:%i",rnd0,rnd1);
}
Idem : fonctions inconnues.
gcc -o ex2 ex2.c;./ex2
rnd0:245041075
rnd1:39158599
le shell a retourné 28
rnd0:1370453719
rnd1:409898370
le shell a retourné 30
Que signifie "28 ou "30"?
Ce sont les valeurs retournées par ton programme. Je rappelle que main()
retourne int (type explicite obligatoire en C99) et qu'un return
explicite est obligatoire en C90, sinon, la valeur retournée est
indéterminée (28, 30, pourquoi pas...)
Ton bout de code m'a aidé à avancer, voilà ce que j'ai fait ensuite: (une compilation réussie est un exploit à mon niveau! ;-) )
ex2.c: # include <stdio.h> # include <stdlib.h> # include <time.h>
main (void) { time_t t=time(1); srandom(t); int rnd=rand(); printf("%i",rnd); rnd=random(); printf("%i",rnd); }
gcc -o ex2 ex2.c
On t'a pourtant indiqué comment compiler :
gcc -Wall -W[extra] -O2 -o ex2 ex2.c
ex2.c: In function 'main': ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer without a cast
C'est pire que ça. J'ai des fonctions inconnues...
Project : OP code Compiler : GNU GCC Compiler (called directly) Directory : C:devforumsOP -------------------------------------------------------------------------------- Switching to target: default Compiling: main.c main.c:41: warning: return type defaults to `int' main.c: In function `main_': main.c:42: warning: passing arg 1 of `time' makes pointer from integer without a cast main.c:43: error: implicit declaration of function `srandom' main.c:43: warning: nested extern declaration of `srandom' main.c:46: error: implicit declaration of function `random' main.c:46: warning: nested extern declaration of `random' Process terminated with status 1 (0 minutes, 0 seconds) 2 errors, 4 warnings
ex2.c: # include <stdio.h> # include <stdlib.h> # include <time.h>
main (void) { time_t t=time(NULL); srandom(t); int rnd0=rand(); int rnd1=random(); printf("rnd0:%inrnd1:%i",rnd0,rnd1); }
Idem : fonctions inconnues.
gcc -o ex2 ex2.c;./ex2
rnd0:245041075 rnd1:39158599 le shell a retourné 28
rnd0:1370453719 rnd1:409898370 le shell a retourné 30
Que signifie "28 ou "30"?
Ce sont les valeurs retournées par ton programme. Je rappelle que main() retourne int (type explicite obligatoire en C99) et qu'un return explicite est obligatoire en C90, sinon, la valeur retournée est indéterminée (28, 30, pourquoi pas...)
Je ne sais pas, mais quand un programme se déroule bien, normalement on termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris main(void) au lieu de int main(void)
Mais en plus tu ne retournes rien à la fin de la fonction.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors que nous t'avons conseillé d'utiliser rand() et srand() à la place ? Est-ce une consigne d'exercice ?
-- Hamiral
titi wrote:
Que signifie "28 ou "30"?
Je ne sais pas, mais quand un programme se déroule bien, normalement on
termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris
main(void)
au lieu de
int main(void)
Mais en plus tu ne retournes rien à la fin de la fonction.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors que
nous t'avons conseillé d'utiliser rand() et srand() à la place ? Est-ce une
consigne d'exercice ?
Je ne sais pas, mais quand un programme se déroule bien, normalement on termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris main(void) au lieu de int main(void)
Mais en plus tu ne retournes rien à la fin de la fonction.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors que nous t'avons conseillé d'utiliser rand() et srand() à la place ? Est-ce une consigne d'exercice ?
-- Hamiral
lhabert
Hamiral :
Luc Habert wrote:
titi :
main (void)
int main(int argc, char ** argv)
Relis la FAQ, en particulier le paragraphe 9.4
Il ne me semble pas qu'elle dise que « main (void) » soit un prototype légal.
Hamiral :
Luc Habert wrote:
titi :
main (void)
int main(int argc, char ** argv)
Relis la FAQ, en particulier le paragraphe 9.4
Il ne me semble pas qu'elle dise que « main (void) » soit un prototype
légal.
Je ne sais pas, mais quand un programme se déroule bien, normalement on termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris main(void) au lieu de int main(void)
Je croyais que c'était facultatif.
Mais en plus tu ne retournes rien à la fin de la fonction.
Je voulais retourner le résultat de la fonction (écrit par printf) par une variable string mais ça ne marchait pas.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors que nous t'avons conseillé d'utiliser rand() et srand() à la place ? Est-ce une consigne d'exercice ?
J'ai laissé les 2 pour comparer (stats). J'ai bien compris que rand() est la bonne manière de faire.
Hamiral wrote:
titi wrote:
Que signifie "28 ou "30"?
Je ne sais pas, mais quand un programme se déroule bien, normalement on
termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris
main(void)
au lieu de
int main(void)
Je croyais que c'était facultatif.
Mais en plus tu ne retournes rien à la fin de la fonction.
Je voulais retourner le résultat de la fonction (écrit par printf) par une
variable string mais ça ne marchait pas.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors
que nous t'avons conseillé d'utiliser rand() et srand() à la place ?
Est-ce une consigne d'exercice ?
J'ai laissé les 2 pour comparer (stats). J'ai bien compris que rand() est la
bonne manière de faire.
Je ne sais pas, mais quand un programme se déroule bien, normalement on termine la fonction main par
return 0;
pour dire que tout s'est bien passé.
Là non seulement tu déclares mal main() ; tu écris main(void) au lieu de int main(void)
Je croyais que c'était facultatif.
Mais en plus tu ne retournes rien à la fin de la fonction.
Je voulais retourner le résultat de la fonction (écrit par printf) par une variable string mais ça ne marchait pas.
Par contre, pourquoi continues-tu à utiliser random() et srandom() alors que nous t'avons conseillé d'utiliser rand() et srand() à la place ? Est-ce une consigne d'exercice ?
J'ai laissé les 2 pour comparer (stats). J'ai bien compris que rand() est la bonne manière de faire.