Inscription / Connexion Nouveau Sujet
Niveau BTS
Partager :

code C

Posté par Profil amethyste 29-11-19 à 19:10

Bonjour et merci d'avance pour toute réponse

En fait ce n'est pas vraiment une question
mais une demande de confirmation
que ce que je dis ici est exact

_________________
Énoncé


Je comprends tout à fait que ce code
ci-dessous ne pose pas de problème
code C

Je comprends tout à fait que ce code
ci-dessous ne pose pas de problème
code C

La seule explication que j'ai de l'erreur
engendrée par le code ci-dessous
est que la machine une fois qu'elle a lu le prototype
de la fonction de nom "fonctionA"
est qu'elle va lire cette fonction
dont la description est située après le main()
code C

Posté par
Ulmiere
re : code C 29-11-19 à 19:20

Dans le premier code, x_ est considérée par fonctionA(void) comme une variable globale.
Elle trouve ton pointeur et le modifie.

Dans le deuxième code, le prototype de fonctionA est différent. Cette fois, fonctionA prend un argument (de type int*) et se sert du pointeur qui lui est donné pour modifier la mémoire à l'endroit qu'il pointe.

Dans le troisième code, on revient au prototype initial (sans argument) et alors il est normal que le compilateur ne soit pas content : x_ est un nom qui n'a été défini nulle part, et il n'a aucun moyen de le trouver. Tu pourrais tout aussi bien l'appeler variableMagique ou oubliBete, et tu obtiendrais la même erreur.
Tu peux cependant quand même accéder à la variable x_ sans l'avoir déclarée (en jouant avec la pile de ton programme), mais c'est un hackte que je ne recommanderais ni à un débutant ni à un professionnel

Posté par
Ulmiere
re : code C 29-11-19 à 19:25

La manière dont gcc trouve le code correspondant au prototype que tu as déclaré est un petit peu complexe, si c'est la question que tu te poses. Mais effectivement, tout se passe comme si gcc te disait "ok, je continue à vérifier le code et je verrai plus tard si je trouve du code associé à cette déclaration et si la fonction concernée est appelée ou pas dans la suite. Mais jamais je trouve un appel sans code ça va ch*er pour toi"

Posté par Profil amethystere : code C 29-11-19 à 19:27

Merci Ulmiere


Je ne m'attendais pas à une réponse aussi rapide (je pensais même que le code C n'est pas considéré comme étant des maths )

Grâce à ta réponse rapide je vais travailler dès ce soir sur la page suivante de mon cahier de code C au lieu de la laisser en blanc

Posté par
Ulmiere
re : code C 29-11-19 à 19:52

De rien

Posté par Profil amethystere : code C 29-11-19 à 20:01

Ulmiere @ 29-11-2019 à 19:52

De rien


de beaucoup vous voulez dire ! vous êtes un ange (je m'en doutais un peu ceci dit)!

pour conclure votre explication, explique donc aussi

que là ci-dessous le code fonctionne aussi

code C

Posté par
Ulmiere
re : code C 29-11-19 à 20:04

Il fonctionne pour la même raison que le premier code : x_ est considérée comme une variable globale par fonctionA. Par contre, cette fois, la fonction ne modifie pas la valeur *x_, mais se contente de renvoyer son produit avec l'argument u

Posté par Profil amethystere : code C 29-11-19 à 20:13

Ulmiere @ 29-11-2019 à 20:04

Il fonctionne pour la même raison que le premier code : x_ est considérée comme une variable globale par fonctionA. Par contre, cette fois, la fonction ne modifie pas la valeur *x_, mais se contente de renvoyer son produit avec l'argument u


Merci Ulmiere

oui effectivement tandis que celui-là ci-dessous la modifie

code C

Bonne soirée à vous et encore Merci vous m'avez sauvé  (oui car quand je ne comprends pas je ne dors pas et je fume blondes sur blondes)

Posté par
Ulmiere
re : code C 29-11-19 à 20:21

Oui il modifie, mais revoie revoie le mauvais produit (là tu multiplies par u*u). Il faut renvoyer *x_ si tu modifies.
Tu peux abréger la fonction modifiante en une seule ligne : return(*x_*=u)

Posté par Profil amethystere : code C 29-11-19 à 20:23

a vaut 100

et ce a est envoyé sur fonctionA

il retourne 100*10

Posté par Profil amethystere : code C 29-11-19 à 20:27

oui lol mince effectivement je n'aurais pas du modifier x avant

Posté par Profil amethystere : code C 29-11-19 à 20:35

bah oui je suis dans la lune (la tête ailleurs certainement )

comme ça c'est mieux

code C

Posté par Profil amethystere : code C 30-11-19 à 01:32

il est 1:27 et j'ai ouvert ce sujet hier à 19:10

entre les deux moments il y a eu l'aide de Ulmiere

maintenant quelques heures plus tard j'ai bien conscience que mon compilateur est mal réglé

il ne devrait pas accepter le premier code

(il ne faut jamais déclarer une fonction dans une fonction)

il me dit 0 erreur 0 warning mais un compilateur bien réglé m'aurait envoyé chier avec mon code pourri

Posté par Profil amethystere : code C 30-11-19 à 01:49

NB: Le sujet est donc résolu (on peut le passer à la couleur bleu)

Posté par Profil amethystere : code C 30-11-19 à 03:23

Le sujet est complètement résolu

pour faire un truc joli en guise de conclusion

j'ai fait ces deux images pour montrer que c'est bien mon compilateur qui est mal réglé

je trouve que ça fait joli avec la couleur rouge bien visible comme ça même avec l' Alzheimer je ne risque pas de le manquer

(ceci dit je n'aurais jamais cette maladie car je ne suis jamais malade puisque c'est un principe que j'ai adopté)

code C

code C

Posté par Profil amethystere : code C 30-11-19 à 11:31

Bonjour Ulmiere (ah vous êtes là! encore merci!)

concernant mon dernier post

vous êtes d'accord ?

ça fait un peu tape à l'œil un peu mais des fois mieux vaut avoir mal aux yeux qu'avoir l'ordi tout bouzillé n'est-ce pas?

Posté par
Ulmiere
re : code C 30-11-19 à 11:41

Un mauvais code ne risque pas de bousiller ton ordinateur, ceci dit.
Au sujet des fonctions à l'intérieur de fonctions (les "nested functions"), c'est un peu plus subtil.

Officiellement, on ne peut pas définir de fonction à l'intérieur d'une autre. Mais on peut en déclarer. Ce comportement est toléré en général sur les postes qui tournent sous Linux, mais pas sous Windows. C'est parce que c'est quelque chose de non-officiel, et donc, dépendant du compilateur que tu utilises. Il ne faut pas le faire pour deux raisons

1) Si tu portes ton code de Linux à Windows, il ne fonctionnera sans doute plus
2) La "nested function" n'est pas, en réalité, une vraie fonction. Je n'entre pas dans les détails, mais sache juste que c'est encore un autre concept.

Si tu veux, c'est comme les labels et les goto. Utile pour certaines choses très très pointues, mais c'est fortement déconseillé si tu veux maintenir ton code ou le partager.

Posté par Profil amethystere : code C 30-11-19 à 11:49

Encore une fois merci Ulmiere

Je me sens tellement redevable devant ces explications détaillées en plus de ça

Belle journée à vous

Posté par
Ulmiere
re : code C 30-11-19 à 11:49

Posté par Profil amethystere : code C 30-11-19 à 13:09

Ulmiere @ 30-11-2019 à 11:41


Si tu veux, c'est comme les labels et les goto. Utile pour certaines choses très très pointues, mais c'est fortement déconseillé si tu veux maintenir ton code ou le partager.


non moi c'est surtout l'esthétique de l'image de mon précédent post qui compte

mais le contenu compte aussi évidemment  

le concret ça ne m'intéresse pas (je suis du courant philosophique de Luc F Dumas)

pour moi il faut que ce soit beau (les lettres rouges je trouve ça joli) mais pas au détriment de la vérité du contenu

en fait si je suis au C je ne me l'explique pas plus que j'essaye de faire des maths

Luc F Dumas en sait plus que moi sur mes motivation extrêmes et hard

Posté par Profil amethystere : code C 30-11-19 à 13:29

NB j'ai vu des vidéos  d'un mec super intelligent (un algérien émigré au states) un type formidable

si il vient ici lire ce que je viens de dire dans mon post précédent il va faire une attaque (sachant que je l'aime à mort tellement il est intelligent

moi quand un(e) type est intelligent je suis comme un gamin devant lui(ou elle )

lui c'est un type du genre concret (et ça lui réussit bien )

Posté par Profil amethystere : code C 30-11-19 à 14:52

C'est lui là dans le lien

c'est un type formidable (je ne suis  pas d'accord avec lui sur des tas de truc qu'il dit  mais c'est pas ça qui compte pour dire si un type est formidable ou pas chez moi)

pour moi un type formidable c'est un type qui pense(le contenu de ce qu'il pense je m'en tape un peu)

Posté par Profil amethystere : code C 30-11-19 à 14:59

sans compter son humour …

enfin bref voilà quoi … il y a des gens qui savent penser et souvent ils ont de l'esprit (et l'humour qui va avec)

Posté par Profil amethystere : code C 30-11-19 à 18:57

quand je pense que toutes les maths sont un langage (en fait je m'en fout qu'il soit écrit en code C )

j'ai le vertige

c'est un langage putain (désolé pour le gros mot mais des fois le mot est trop gros pour une petite cervelle de moineau pour moi et il faut un gros mot pour penser l'impensable)

Posté par Profil amethystere : code C 30-11-19 à 19:08

et certes je l'ai dit plusieurs fois que les maths sont un langage et certes je l'ai dit en sachant que les maths sont un langage (si le mot savoir possède un sens quand on le rapporte à mes capacités de savoir en tant qu'homme préhistorique lambda) mais moi je suis un homme préhistorique et certes je sais que pour les pros c'est banal mais moi là je descend de mon arbre à cloche pied

les conséquences sont terribles (fascinantes certes ) mais pour un petit homme comme moi c'est terrible

Posté par Profil amethystere : code C 30-11-19 à 19:23

si j'avais deux mot à dire à propos des maths en tant que langage j'aurais ces deux mots là:

pour un petit mec (car je suis un petit mec) un petit mec comme moi dira :  

c'est terrible et c'est banal  mais ces deux mots là ne vont tellement pas ensemble que c'est terrifiant un tel manque d'harmonie pour parler de ce que sont les maths

si j'en parle si mal c'est que je suis comme un singe qui parle des récoltes mondial des bananes sur le marché de Chicago

Posté par Profil amethystere : code C 30-11-19 à 19:32

faute d'orthographe

*mondiales

Posté par Profil amethystere : code C 30-11-19 à 19:50

Dans le même temps les maths ne sont pas présentées comme étant un langage

elles donnent même la définition d'un langage formel

Posté par Profil amethystere : code C 30-11-19 à 19:59

je vais dormir(en fait non j'ai pas sommeil mais mentir c'est humain et j'ai le droit d'être considéré comme un humain )

Posté par Profil amethystere : code C 30-11-19 à 20:18

en fait j'ai pas sommeil

À tant vouloir ressembler aux humains, je ne ressemble plus à rien : autant dire la vérité

j'ai pas sommeil!

Posté par Profil amethystere : code C 03-12-19 à 12:59

amethyste @ 30-11-2019 à 19:50

Dans le même temps les maths ne sont pas présentées comme étant un langage

elles donnent même la définition d'un langage formel


C'est quoi ce "machin" qui pourrait se donner la définition de lui même?

Ce sujet est résolu mais je me permet de rajouter ce post (juste parce que je suis perplexe par ce "machin")

Bon courage à tous (bon je retourne à mes maths-je suis trop nul pour me permettre de ne pas continuer mes maths)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1729 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !