appel d'une fonction dans c
appel d'une fonction dans c
Bonjour, on définit la fonction Inside telle :
j'essaie d'appeler cette fonction en écrivant inside(*pos,{ 0, 0 } , dim) mais on me déclare comme erreur few arguments
et j'essaie de l'appeler de cette manière
struct position_t origin;
origin.x=0;
origin.y=0;
(inside(*pos,origin , dim) -en définissant au préalable origin- et je n'obtiens pas cette erreur , pouvez-vous m'indiquez où est l'erreur ?
j'essaie d'appeler cette fonction en écrivant inside(*pos,{ 0, 0 } , dim) mais on me déclare comme erreur few arguments
et j'essaie de l'appeler de cette manière
struct position_t origin;
origin.x=0;
origin.y=0;
(inside(*pos,origin , dim) -en définissant au préalable origin- et je n'obtiens pas cette erreur , pouvez-vous m'indiquez où est l'erreur ?
Re: appel d'une fonction (langage C)
Quelle est la syntaxe de cette fonction Inside
d'après la documentation dans le manuel de la bibliothèque ?
ça fait des années que je n'ai pas fait de C ,
c'est quelle sorte d'écriture les crochets : { , } ?
d'après la documentation dans le manuel de la bibliothèque ?
ça fait des années que je n'ai pas fait de C ,
c'est quelle sorte d'écriture les crochets : { , } ?
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait)
Re: appel d'une fonction (langage C)
C'est des accolades. Il s'agit de listes d'initialisation. On peut les utiliser en C pour initialiser des tableaux. Ils peuvent être utilisés en C++ (depuis le C++2011) pour initialiser des structures. http://www.cplusplus.com/reference/init ... izer_list/ De mémoire, le constructeurs prenant une liste d'initialization en argument est construit par défaut pour les structures suffisamment simples (je crois celles qu'on appelle "plain old data" mais je dois regarder les détails). https://en.cppreference.com/w/cpp/langu ... lizer_list
Les initializers lists existent en fait aussi en C (même en C90) pour les structures. Cependant, contrairement au C++, il n'y a pas en C de conversion implicite qui permettent de passer d'une liste d'initialisation à une structure. Ils ne peuvent être utilisés en C que lors de la déclaration d'une variable pour l'initialiser. Depuis le C99, vous pouvez faire cet appel explicite avec des "compound litterals". Essayez ceci:
$$
\texttt{inside(*pos,(struct position_t) {0,0}, dim);}
$$
Depuis le C99, il y a aussi ceci http://www.lysator.liu.se/c/designated- ... izers.html
Pour l'OP, pourquoi ne posez-vous pas cette question à vos professeurs?
EDIT 1 et 2: C14 -> C99 Correction inexactitudes sur l'existence des initializer lists en C. Ajout compound litterals.
EDIT 3: Ajout exemple.
Dernière modification par matmeca_mcf1 le 07 mars 2019 21:04, modifié 3 fois.
Ancien ENS Cachan (maths) 1999--2003
Enseignant-Chercheur à l'Enseirb-Matmeca (Bordeaux INP) filière matmeca
Les opinions exprimées ci-dessus sont miennes et ne reflètent pas la position officielle de l'école dans laquelle j'enseigne.
Enseignant-Chercheur à l'Enseirb-Matmeca (Bordeaux INP) filière matmeca
Les opinions exprimées ci-dessus sont miennes et ne reflètent pas la position officielle de l'école dans laquelle j'enseigne.
Re: appel d'une fonction dans c
Il ne peut pas trop poser la question à ses profs, car il aime le risque et il essaie d'étudier en candidat libre : http://forum.prepas.org/viewtopic.php?f=18&t=68543
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait)