Go Down

Topic: declaration array qui contient des longs (Read 835 times) previous topic - next topic

KiliYaBB

Oct 02, 2009, 10:02 am Last Edit: Oct 02, 2009, 10:02 am by KiliYaBB Reason: 1
Bonjour,

Dans les docs de références de arduino pour les arrays on peut lire :

int myPins[] = {2, 4, 8, 3, 6};

pour declarer un tableau qui contiendra des int (je suppose que cela veut dire ca, corrigez moi si je me trompe...)

Mais dans mon cas, le tableau contiendra des nombres "long" (nombre pouvant aller jusque 2 147 483 647)

Comment dois-je déclarer ?

long myPins[] = {2111221,1201,4577544,2544566}

?

Merci !


fdufnews

Code: [Select]
long myPins[] = {2111221L,1201L,4577544L,2544566L}

KiliYaBB

Ah ok, donc ce que j'en comprends c'est qu'il faut mettre un L a la fin cest ca ?

mais alors supposons

Code: [Select]
void setup{
long myPins[] = {2111221L,1201L,4577544L,2544566L}
}

voild loop{
for(int i=0;i<=5;i++){
myPins[0]=analogRead(i)*1000;
}
...
}


comment je fais pour mettre le L a la fin de analogRead(0)*1000 ???

Merci

fdufnews

#3
Oct 02, 2009, 01:33 pm Last Edit: Oct 02, 2009, 01:33 pm by fdufnews Reason: 1
Quote
comment je fais pour mettre le L a la fin de analogRead(0)*1000 ???


Code: [Select]
analogRead(0)*1000L

KiliYaBB

#4
Oct 02, 2009, 01:39 pm Last Edit: Oct 02, 2009, 01:42 pm by KiliYaBB Reason: 1
Merci pour ces réponses synthétiques fdudnews !

Mais cest quoi ce L ? le long ne suffit pas ?

fdufnews

1000L est équivalent à un (long)1000
Le type d'une constante est défini par le contexte. Mais ce n'est pas toujours suffisant. Quand la valeur est inférieure à 32767 le compilateur ne peut pas savoir si c'est un int ou un long donc il faut le lui dire explicitement.  
Si tu écris 1000 le compilateur le considère comme un entier.
Si tu écris 1000.0 il le considère comme un float.
Si tu écris 1000L il le considère comme un long

KiliYaBB

Merci pour ces précisions !

moi je pensais que dès lors qu'on avait dit le type de variables dans la déclaration, il n'y avait pas besoin de le redire.

Bon je m'en va tester tout ca !

merci !!!

Go Up