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

[C]recuperer une structures dans un .h

Arshavodka
Arshavodka
Niveau 9
01 décembre 2011 à 22:10:29

bonjour, j'ai un projet en C ou je dois recuperer des valeurs de retour d'un headers qui est une structure
( la fonction est de type "nomstruct fonction(void)", nomstruct etant une structure defini dans le fichier .h)

cependant je n'arrive pas a recuperer les valeurs de retour de cette fonction.

quelqu'un pourrait m"indiquer comment faire, j'ai chercher eperdument sur google sans resultat :please:

godrik
godrik
Niveau 30
01 décembre 2011 à 22:18:10

pas compris le probleme. Donne une exemple simple et concret.

Arshavodka
Arshavodka
Niveau 9
01 décembre 2011 à 22:28:49

on me donne en fichier .h dans laquelles se trouve des valeurs.

j'ai accés à ces valeurs avec la valeur de retour des fonctions ecrit dans le fichier .h

et je n'arrive pas a recuperer la valeur de cette fonction car sa renvoie une structure :

la structure est defini dans le fichier .h :
typedef struct{
int direction;
unsigned char force;
}vent;

et la fonction est :
vent get_vent_station(void){
int temp = 0;

temp = (int) rand()%110;

if(temp < 90){
// + 10
if(temp < 45)
temp = temp;
// - 10
else
temp = -(temp - 45);
}
else{
// erreur
if(temp < 95)
temp = (temp-95)*10;
else
temp = 0;
}

if(vent_station_1.force + temp > 255)
vent_station_1.force = 255;
else{
if(vent_station_1.force + temp < 0)
vent_station_1.force = 0;
else
vent_station_1.force += temp;
}

temp = (int) rand()%360;
vent_station_1.direction = (vent_station_1.direction + temp)%360;
return vent_station_1;
}

comment recuperer les valeurs de retour?

godrik
godrik
Niveau 30
01 décembre 2011 à 22:38:32

de la meme facon que tu les utilises dans le code de cette fonction:

vent foo = get_vent_station();
printf ("%d %c\n", vent.force, vent.direction);

Arshavodka
Arshavodka
Niveau 9
01 décembre 2011 à 22:40:53

vent foo?

c'est une structure?

godrik
godrik
Niveau 30
01 décembre 2011 à 22:54:47

... peut etre devrais tu lire un cours de C. En particulier le chapitre sur les structures.

http://c.developpez.com/cours/poly-c/?page=page_5#LV-B-1

ou bien

http://clips.imag.fr/commun/bernard.cassagne/Introduction_ANSI_C/node78.html

Arshavodka
Arshavodka
Niveau 9
02 décembre 2011 à 01:53:21

ah si je viens de comprendre!(j'ai pas mis 3h hein je viens de revenir :o)) )
mais c'est vrai que j'ai zappé un peu vite les structures, tes liens me seront tres utiles :)

merci :ok:

Nightmarez
Nightmarez
Niveau 9
02 décembre 2011 à 16:46:19

En fait faut se dire qu'une structure peut etre utilisee comme une variable "standart" pour les affectations, de meme maniere que tu peux faire:

int a;
a = atoi(str);

Tu pourras faire

vent a;
a = fonction_qui_renvoie_un_vent();

Comme a bien dit Godrik =)

chris_27
chris_27
Niveau 10
02 décembre 2011 à 16:52:56

On ne dit pas

« int a = atoi(str); »

mais

« long a = strtol(str, NULL, 10); »

:oui:

</religion>

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