Bonjour.
SVP, pouvez vous m'expliquer comment fonctionne cette déclaration et initialisation simultané en language C. (le code se trouve à la fin du poste)
1- la déclaration d'une fonction pointée?! (c'est quoi au juste?
2- Déclaration de la variable Display de type Max7219Struct. et son initialisation avec des adresses?! (j'ai jamais croisé ca dans les docs que j'ai lu)Code:void (*Init)(char CodeB, char Intensity, char ScanLimit, char ShutDown);
3- qu'el est l'utilité de déclarer le type externe ? (j'ai pas bien assimilé son importance au cours mes lecturesCode:Display={&Max7219Init,&Max7219Print,&Max7219DisplayOff,&Max7219DisplayOn,&Max7219UpdateIntensity};
Merci d'avance pour votre aide.Code:extern sfr sbit MAX7219_CS_LOAD;
PS: je suis novice en programmation C. j'ai relativement bien assimilé les concets de pointeurs mais je manque de pratique sur le implémentations particulières.
&a: permet de récupérer l'adresse d'une variable
*p: permet d'aller chercher le contenu de l'adresse pointé.
p: c'est une variable qui contient une adresse d'une variable quelque part en mémoire
le Code
--------
Code:extern sfr sbit MAX7219_CS_LOAD; extern sfr sbit MAX7219_CS_LOAD_DIRECTION; void Max7219Init(char CodeB, char Intensity, char ScanLimit, char ShutDown); void Max7219Print(unsigned long Number, unsigned short NumberOfDigits); void Max7219DisplayOff(); void Max7219DisplayOn(); void Max7219UpdateIntensity(char OnValue); struct Max7219Struct { void (*Init)(char CodeB, char Intensity, char ScanLimit, char ShutDown); void (*Print)(unsigned long Number, unsigned short NumberOfDigits); void (*TurnOff)(); void (*TurnOn)(); void (*ChangeIntensity)(char OnValue); }Display={&Max7219Init,&Max7219Print,&Max7219DisplayOff,&Max7219DisplayOn,&Max7219UpdateIntensity}; #include "Max7219Lib.c"
-----