Bonjour,
Excusez moi pour mon chinois .
J'ai un fonction comme ceci
donc quand je l'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void WritePhoneNum(byte posi, char * number){ ...code...}
WritePhoneNum(posi, number);
posi doit etre un byte et number doit etre un char.
Je ne comprends pas pourquoi quans je fais ceci ca fonction comme meme
à savoir que param est un char. Ci-dessous, je le transfomr en int
Sachez avant que sms_text et param sont des char qui sont déclarés plus haut dans mon code
char sms_text[20];
char param[3];
Aussi j'ai d'abord fait un truc de encore plus chinois, mais qui marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WritePhoneNum(atoi(param), sms_text);
Je converti param en int puis en byte
J'ai donc deux question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WritePhoneNum((byte)(atoi(param)), sms_text);
Pourquoi un int peut "remplacer un byte, comme dans le premier exemple.
Si c'est bien, ca me va très très bien.
Pourriez-vous me faire un commentaire sur ceci, en revanche. C'est pas du charbias qui fonctionne?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WritePhoneNum((byte)(atoi(param)), sms_text);
Aussi, j'aimerais bien vous poser une autre question.
Si j'ai un char message[120] qui a pris une valeur de 119 caractere.
Comment puis bien vider ce char pour gagner de la memoire.
Es-ce que ceci suffit:
Qu'es-ce que ca fait exactement. A mon interpretation, il met le caravtere \0 en premiere position qui veut dire fin du string. Donc elle est vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part message[0]='\0';
Es-ce juste? Bon je ne donnerai pas un cours avec cette explication, mais ....
Merci
Partager