Ca c'est pour prendre en compte des params, je connais.
time_t t=time(1); ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer without a cast
Si tu lisais le man, un petit peu :
time_t time(time_t *t);
time() returns the time since the Epoch (00:00:00 UTC, January 1, 1970), measured in seconds.
If t is non-NULL, the return value is also stored in the memory pointed to by t.
Je l'ai en français! :-)
#include <time.h>
time_t time(time_t *t);
DESCRIPTION time renvoie l'heure actuelle sous forme du nombre de secondes Ecoulées depuis le 1er Janvier 1970 à 00h 00m 00s GMT, le debut de l'ère Unix.
Si t n'est pas NULL, la valeur renvoyée est également stockée dans la structure vers laquelle il pointe
il y a des termes et des conventions que je ne connais pas encore bien ou que j'ai oubliés "* ** ***", "makes pointer from integer without a cast" j'essaie des trucs, j'observe ce qu'il se passe,... bref, je peux pas tout faire en 1h! ;-)
Luc Habert wrote:
main (void)
int main(int argc, char ** argv)
Ca c'est pour prendre en compte des params, je connais.
time_t t=time(1);
ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer
without a cast
Si tu lisais le man, un petit peu :
time_t time(time_t *t);
time() returns the time since the Epoch (00:00:00 UTC, January 1,
1970), measured in seconds.
If t is non-NULL, the return value is also stored in the memory
pointed to by t.
Je l'ai en français! :-)
#include <time.h>
time_t time(time_t *t);
DESCRIPTION
time renvoie l'heure actuelle sous forme du nombre de
secondes
Ecoulées depuis le 1er Janvier 1970 à 00h 00m 00s GMT, le debut de
l'ère Unix.
Si t n'est pas NULL, la valeur renvoyée est également stockée dans
la structure vers laquelle il pointe
il y a des termes et des conventions que je ne connais pas encore bien ou
que j'ai oubliés "* ** ***", "makes pointer from integer without a cast"
j'essaie des trucs, j'observe ce qu'il se passe,...
bref, je peux pas tout faire en 1h! ;-)
Ca c'est pour prendre en compte des params, je connais.
time_t t=time(1); ex2.c:8: warning: passing argument 1 of 'time' makes pointer from integer without a cast
Si tu lisais le man, un petit peu :
time_t time(time_t *t);
time() returns the time since the Epoch (00:00:00 UTC, January 1, 1970), measured in seconds.
If t is non-NULL, the return value is also stored in the memory pointed to by t.
Je l'ai en français! :-)
#include <time.h>
time_t time(time_t *t);
DESCRIPTION time renvoie l'heure actuelle sous forme du nombre de secondes Ecoulées depuis le 1er Janvier 1970 à 00h 00m 00s GMT, le debut de l'ère Unix.
Si t n'est pas NULL, la valeur renvoyée est également stockée dans la structure vers laquelle il pointe
il y a des termes et des conventions que je ne connais pas encore bien ou que j'ai oubliés "* ** ***", "makes pointer from integer without a cast" j'essaie des trucs, j'observe ce qu'il se passe,... bref, je peux pas tout faire en 1h! ;-)
titi
Emmanuel Delahaye wrote:
gcc -o ex2 ex2.c
On t'a pourtant indiqué comment compiler :
gcc -Wall -W[extra] -O2 -o ex2 ex2.c
Je l'ai lu après. La copie du code a été faite avant.
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... ?
main.c:41: warning: return type defaults to `int' *int* main(void)
main.c: In function `main_': main.c:42: warning: passing arg 1 of `time' makes pointer from integer without a cast Bon j'ai tout compris, il préfère NULL.
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' Là je comprends pas.
Idem : fonctions inconnues. D'où ça vient?
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...)
int main (void) { srand((unsigned)time(NULL)); { int rnd0 = rand(); int rnd1 = rand(); printf("rnd0:%dn" "rnd1:%dn", rnd0, rnd1); } return 0; }
rnd0:16098 rnd1:12543
Puis je suis passé aux tableaux.
Alors on écrit le tableau, puis on le relit, sinon, il ne sert à rien...
Le printf était pour debug. Le but de la fonction serait de générer le tableau, c'est pour ça que j'ai tout mis dans la même boucle, et en plus j'ai fait une autre boucle pour fixer la sortie (entre 1 et 100 par exemple) mais comme ça ne marchait pas je ne l'ai pas copié (c'est pas spécifique au C).
#define N 20 Ca je connais.
srand((unsigned)time(NULL)); Ca c'est dans man rand/srand
return 0; Ca je connais aussi.
Pose des questions si tu ne comprends pas. Je te remercie. Je n'ai pas trop de temps à y consacrer, donc je vais
étudier les matériaux que vous m'avez fournis, triturer un peu tout ça et je reviendrai avec un autre code. Merci! :-)
Emmanuel Delahaye wrote:
gcc -o ex2 ex2.c
On t'a pourtant indiqué comment compiler :
gcc -Wall -W[extra] -O2 -o ex2 ex2.c
Je l'ai lu après. La copie du code a été faite avant.
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...
?
main.c:41: warning: return type defaults to `int'
*int* main(void)
main.c: In function `main_':
main.c:42: warning: passing arg 1 of `time' makes pointer from integer
without a cast
Bon j'ai tout compris, il préfère NULL.
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'
Là je comprends pas.
Idem : fonctions inconnues.
D'où ça vient?
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...)
int main (void)
{
srand((unsigned)time(NULL));
{
int rnd0 = rand();
int rnd1 = rand();
printf("rnd0:%dn"
"rnd1:%dn", rnd0, rnd1);
}
return 0;
}
rnd0:16098
rnd1:12543
Puis je suis passé aux tableaux.
Alors on écrit le tableau, puis on le relit, sinon, il ne sert à rien...
Le printf était pour debug. Le but de la fonction serait de générer le
tableau, c'est pour ça que j'ai tout mis dans la même boucle, et en plus
j'ai fait une autre boucle pour fixer la sortie (entre 1 et 100 par
exemple) mais comme ça ne marchait pas je ne l'ai pas copié (c'est pas
spécifique au C).
#define N 20
Ca je connais.
srand((unsigned)time(NULL));
Ca c'est dans man rand/srand
return 0;
Ca je connais aussi.
Pose des questions si tu ne comprends pas.
Je te remercie. Je n'ai pas trop de temps à y consacrer, donc je vais
étudier les matériaux que vous m'avez fournis, triturer un peu tout ça et
je reviendrai avec un autre code.
Merci! :-)
Je l'ai lu après. La copie du code a été faite avant.
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... ?
main.c:41: warning: return type defaults to `int' *int* main(void)
main.c: In function `main_': main.c:42: warning: passing arg 1 of `time' makes pointer from integer without a cast Bon j'ai tout compris, il préfère NULL.
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' Là je comprends pas.
Idem : fonctions inconnues. D'où ça vient?
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...)
int main (void) { srand((unsigned)time(NULL)); { int rnd0 = rand(); int rnd1 = rand(); printf("rnd0:%dn" "rnd1:%dn", rnd0, rnd1); } return 0; }
rnd0:16098 rnd1:12543
Puis je suis passé aux tableaux.
Alors on écrit le tableau, puis on le relit, sinon, il ne sert à rien...
Le printf était pour debug. Le but de la fonction serait de générer le tableau, c'est pour ça que j'ai tout mis dans la même boucle, et en plus j'ai fait une autre boucle pour fixer la sortie (entre 1 et 100 par exemple) mais comme ça ne marchait pas je ne l'ai pas copié (c'est pas spécifique au C).
#define N 20 Ca je connais.
srand((unsigned)time(NULL)); Ca c'est dans man rand/srand
return 0; Ca je connais aussi.
Pose des questions si tu ne comprends pas. Je te remercie. Je n'ai pas trop de temps à y consacrer, donc je vais
étudier les matériaux que vous m'avez fournis, triturer un peu tout ça et je reviendrai avec un autre code. Merci! :-)
oui, c'est bien mieux, mais le programme sera quand meme exécuté si la compilation ne produit que des warnings.
on peut ajouter d'autres warnings avec -W ou -Wextra suivant la version de gcc (que l'équipe de gcc soit maudite pour avoir changé les arguments de ligne de commande... et pour refuser de mettre ces warnings en standard, ce qui aiderait grandement les débutants et les programmeurs chevronnés aussi.)
on peut aussi sélectionner plus finement les warnings utiles (chercher CFLAGS dans les archives de cette liste.)
pour être sûr de ne rien rater, on peut aussi rajouter -Werror qui arrête la compilation en cas de warnings et renvoie un code d'erreur, le shell n'executera pas le programme dans ce cas (grâce à l'opérateur &&)
-- Chqrlie.
"titi" <titi@fr.invalid> wrote in message
news:44aaffb5$0$873$ba4acef3@news.orange.fr...
oui, c'est bien mieux, mais le programme sera quand meme exécuté si la
compilation ne produit que des warnings.
on peut ajouter d'autres warnings avec -W ou -Wextra suivant la version de gcc
(que l'équipe de gcc soit maudite pour avoir changé les arguments de ligne de
commande... et pour refuser de mettre ces warnings en standard, ce qui aiderait
grandement les débutants et les programmeurs chevronnés aussi.)
on peut aussi sélectionner plus finement les warnings utiles (chercher CFLAGS
dans les archives de cette liste.)
pour être sûr de ne rien rater, on peut aussi rajouter -Werror qui arrête la
compilation en cas de warnings et renvoie un code d'erreur, le shell n'executera
pas le programme dans ce cas (grâce à l'opérateur &&)
oui, c'est bien mieux, mais le programme sera quand meme exécuté si la compilation ne produit que des warnings.
on peut ajouter d'autres warnings avec -W ou -Wextra suivant la version de gcc (que l'équipe de gcc soit maudite pour avoir changé les arguments de ligne de commande... et pour refuser de mettre ces warnings en standard, ce qui aiderait grandement les débutants et les programmeurs chevronnés aussi.)
on peut aussi sélectionner plus finement les warnings utiles (chercher CFLAGS dans les archives de cette liste.)
pour être sûr de ne rien rater, on peut aussi rajouter -Werror qui arrête la compilation en cas de warnings et renvoie un code d'erreur, le shell n'executera pas le programme dans ce cas (grâce à l'opérateur &&)