CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

printf("blabla");

godrik
godrik
Niveau 30
05 septembre 2012 à 20:40:26

en effet le 5eme lien de google donne la bonne information. Cependant, c'est un tuto pour gtk 1.2 date de l'an 2000, je ne l'aurais certainement pas regarde, c'est souvent trop vieux.

Paulop
Paulop
Niveau 12
11 septembre 2012 à 10:09:37

Question.

J'ai une boucle for de 0 à 6. Dedans je récupère des valeurs de tableaux que je mets dans des floats

for ( 1 .. 6 )
{
float x = arr[i];
float y = bar[i];
float z = foo[i];
}

Je récupère comme ça pas mal de float.
Qu'elle est la meilleure stratégie pour récupérer ces valeurs ? Comme je le fais, directement pomper la valeur depuis l'array ? Avec un pointeur ? Déclarer les var en dehors de la boucle for ?

Je pense que ma méthode n'est pas la plus mauvaise car on a affaire à des type primitifs et le compilateur doit pouvoir améliorer les choses tout seul, il me semble que si je déclare les var en dehors du for, cela ne change rien. Je ne pense pas que l'utilisation de pointeurs soit non plus super intéressant sachant qu'on à affaire à des type primitifs répartis dans plusieurs tableaux. J'aurai plutôt vu l'intérêt s'il fallait récupérer les valeurs dans des structs elle même dans un tableau.

Bref, qu'en pensez vous ?

Tikim
Tikim
Niveau 21
11 septembre 2012 à 10:30:21

Mais tu en fais quoi de x, y et z ?

Parce que t'es pas censé les déclarer plusieurs fois tes variables, là tu vas les déclarer à chaque itération. Je sais plus trop ce que ça donnera, mais soit ça compilera pas, soit l'existence de chacune des trois variables sera limitée à l'itération actuelle de la boucle. Ce qui fait que tu devras la traiter directement, avant qu'elle disparaisse.

Donc faut nous en dire plus sur l'usage que tu veux en faire. Si tu as un besoin immédiat de x, y et z et qu'après cet usage tu n'as plus besoin de la valeur, tu peux les déclarer avant la boucle, les récupérer et les traiter dans la boucle, et basta.

Ou si tu as besoin d'avoir, après ta boucle for, les 6 valeurs de x, y et z, tu peux faire un tableau à deux dimensions (float tab[3][6]) qui contient, pour x, y et z dans l'ordre les 6 valeurs obtenues.

Un truc du genre :

float tab[3][6] = {{0}, {0}}; // Pas sûr pour l'initialisation
for(i=0;i<6;i++)
{
x = tab[1][i];
y = tab[2][i];
z = tab[3][i];
}

Mais de nouveau, c'est pas forcément la solution la plus adaptée, pour ça faudrait que tu nous dise dans quel contexte tu en as besoin.

Tikim
Tikim
Niveau 21
11 septembre 2012 à 10:32:32

Dans la boucle ce serait plutôt comme ça, pardon :

{
tab[1][i] = arr[i];
tab[2][i] = bar[i]:
tab[3][i] = foo[i];
}

Paulop
Paulop
Niveau 12
11 septembre 2012 à 10:33:56

Effectivement, je les utilise seulement dans la boucle.

Tikim
Tikim
Niveau 21
11 septembre 2012 à 10:38:50

Dans ce cas pourquoi passer par des variables ? Je sais pas ce que tu peux en faire, mais tu peux les traiter directement via leur tableau.

Par exemple si c'est pour une fonction de GUI qui dessine une image à une coordonnée précise, tu peux faire un truc du genre :

for(i=0;i<6;i++)
{
dessine(image1, arr[i], ecran);
dessine(image2, bar[i], ecran);
dessine(image3, foo[i], ecran);
}

Bon mon exemple est un peu pourri parce que je pense pas que ce soit ce que tu fais avec ton programme, mais pour ça me faudrait plus de détails^^ En tout cas c'est clair que comme ça t'évites de déclarer 3 variables, donc c'est plus optimisé. Sous Windows ça change pas grand chose, à moins que ta fonction soit appelée très très souvent, mais en embarqué ça peut clairement avoir son importance :o))

Paulop
Paulop
Niveau 12
11 septembre 2012 à 10:53:14

J'effectue plusieurs traitement avec ces variables, elles sont ajoutée à des objets, additionnées, bref plein de traitements, d'où le fait que je dois les mettre dans des variables.

Tikim
Tikim
Niveau 21
11 septembre 2012 à 10:55:52

Dans ce cas déclares les trois float avant la boucle, tu mets dedans les 3 valeurs et tu les traites. Ce sera toujours mieux que de les déclarer dans la boucle.

tbop2
tbop2
Niveau 10
11 septembre 2012 à 14:09:32

Paulop avant toute chose des qu'il s'agit d'optimisation -a moins que le but de ton post soit entierement didactique de ta part- : as-tu au moins profile cette partie du code et en es arrive a la conclusion que probleme de performance il y avait ?

Paulop
Paulop
Niveau 12
11 septembre 2012 à 14:13:48

Non il s'agit simplement de connaître la meilleure pratique, le code n'est pas vraiment problématique en soit, seulement 6 tours de boucles avec des traitement simple, ça casse pas trois pâtes à un canard, mais c'est pour étendre le problème que je me posais la question.

hyrulink2
hyrulink2
Niveau 7
11 septembre 2012 à 21:38:36

Si tu ne te sert des variables que dans la boucle il est inutile de les déclarer en dehors. De même qu'il est inutile de travailler avec par pointeur. De manière générale fait confiance au compilo pour ce genre de choses, le plus important est d'écrire du code LISIBLE.
Et c'est plus lisible de les déclarer dans la boucle car tu les utilise pas dehors, de même que tu n'utilise pas leur adresse apparemment donc c'est plus lisible de travailler avec leur valeur plutot qu'avec des pointeurs.

Mpeg
Mpeg
Niveau 10
12 septembre 2012 à 23:53:22

Yop tout le monde!

Est-ce que l'un d'entre vous a déjà commandé et reçu un Raspberry Pi...? Par tout hasard.

Si ui, vous en êtes satisfaits?

Tikim
Tikim
Niveau 21
13 septembre 2012 à 00:15:09

J'ai un contact fb qui vient d'en recevoir un et qui a l'air d'en être totalement satisfait :o))

Mpeg
Mpeg
Niveau 10
13 septembre 2012 à 00:25:13

Pour changer :p

Je peine à trouver des critiques négatives...

Tikim
Tikim
Niveau 21
13 septembre 2012 à 11:39:06

J'en ai commandé un aussi d'ailleurs, par contre je sais pas trop quand il arrivera, c'est marqué que ça peut prendre jusqu'à 11 semaines :/

Mpeg
Mpeg
Niveau 10
13 septembre 2012 à 12:19:30

Ui dommage que t'aies pas posté sur le blabla, je t'aurais filé un autre site... Snootlab tu connais?

Je l'ai commandé avant hier soir, il en restait 3 en stocks, aujourd'hui plus rien...

Je dois le recevoir demain ou après demain si tout se passe bien :)

Tikim
Tikim
Niveau 21
13 septembre 2012 à 13:40:13

Mais j'aurais sûrement eu des frais de port supplémentaires, là je l'ai acheté sur un site suisse.

Tikim
Tikim
Niveau 21
13 septembre 2012 à 13:41:17

Et non je connaissais pas, mais c'est marrant ils vendent des plateformes arduino, je savais même pas que ça existait, je connais juste le logiciel qui simule les entrées/sorties de ports :o))

Mpeg
Mpeg
Niveau 10
13 septembre 2012 à 14:01:49

Ahah ouais le pied si t'es un bidouilleur averti. Le site a bonne réputation en plus.

Sinon t'en as eu pour combien au final? Fdpin

Tikim
Tikim
Niveau 21
13 septembre 2012 à 14:09:20

J'ai pris quelques trucs avec en fait, j'ai paumé un peu tout les câbles & co qu'il me restait durant les rangements d'été :o))

Donc ça donne ça :
Raspberry Pi Type B Single Board Computer £21.60 £21.60
4GB Class 6 SDHC Flash memory card for Raspberry Pi £6.49 £6.49
Ethernet network cable for Raspberry Pi £0.97
Raspberry Pi Type B Case - White £3.99
Micro USB Euro power supply for Raspberry Pi £4.89
Belkin Hi-Speed USB 2.0 4-Port Hub £5.99
Running Total £43.93
Standard Delivery (Despatch expected within 11 week(s)) £4.95
Order total £48.88

Donc environ 50 livre, soit 75CHF, donc 60€.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment