je suis entrain de convertir un code c++ en c pour le compiler dans ma montre Pebble, mon problème est que je ne comprend pas la syntaxe d'une fonction ( le ':' utilisé après la déclaration de la fonction prayertimes):
Oui la syntaxe est bonne, c'est ce qu'on appelle une liste d'initialisation. C'est une bonne pratique et si tu fais du C++ sérieusement, tu n'utilises normalement que ça :).
On se sert de la liste d'initialisation pour initialiser des attributs non initialisables sinon.
Exemple
class Toto
{
int& _ref_i;
const int _cst_i;
};
Toto::Toto(int i)
: _ref_i(&i), _cst_i(i) // valide
{
}
Toto::Toto(int i)
{
_ref_i = &i; // invalide, on ne peut modifier une ref par affectation
_cst_i = i; // invalide, on ne peut modifier une valeur constante
}
Dans cette classe, on ne peut affecter de valeur à _ref_i et _cst_i que s'ils sont dans une liste d'initialisation. C'est la raison pour laquelle on initialise toujours des attributs avec une liste d'initialisation et jamais dans le corps du constructeur.