Programmantion c

Fermé
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 - 29 févr. 2008 à 22:23
 eigeneyes - 3 mars 2008 à 20:48
Bonjour,
s'il vous plait pourrez vous m'expliquer quelle la difference entre une constante definie avec le #define et constante definie dans le code source..... exemple:
#define age = 18
et const int age =18

14 réponses

Bonjour,

En fait #define age = 18 n'est pas une constante, c'est une directive de précompilation, c'est à dire qu'avant de compiler le code source, le compilateur remplace toutes les occurrences du mot age par le mot 18. Dons age n'occupe pas de place en mémoire au moment de l'exécution. D'ailleurs c'est pas autorisé d'écrire age = i++ ; parce que age n'est pas un identifiant et n'a pas d'adresse.
Par contre Const int age=18; définit bien une variable de type entier initialisé à 18. Dans ce cas age à une adresse mémoire et donc peut etre accessible en lecture mais pas en écriture.

J'espère que c'est plus clair pour toi.
Salut.
0
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 18
1 mars 2008 à 09:51
oui c'est un peu plus clair...merci...
jai aussi des problemes avec les IDE que j'utilise a savoir code blocks et Dev c++...lorsque je compile et j'execute mon code source la console apparait quelque fractions de seconde et disparait..a quoi est du cela????
0
Bonjour,

Je pense que c'est parce que, dés que l'exécution du programme est finie, l'IDE reprend la main et la fenêtre d'exécution disparait. Il doit certainement y avoir une option qui laisse la fenêtre d'exécution affichée ou qui permet de basculer d'une fenêtre à l'autre. Un astuce consiste à terminer ton programme par l'instruction getch(); c'est à dire que le prog attend un caractère au clavier avant de continuer, ça permet de voir le résultat de l'affichage.

Salut.
0
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 18
1 mars 2008 à 14:11
vous avez certainement raison parce moi je termine chaque fois mes programmes par return 0...alors kel est la difference entre les deux et kel est le meilleur????detaillez un peu!!!
quand on utilise getch() queskil fo mettre au debut(le type de la fonction main)????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
La fonction getch() attend qu'un caractère soit disponible au clavier et place éventuellement le caractère dans une variable de type char, ex:
c=getch(); c reçoit le caractère (le code de la touche) qui à été frappée au clavier
getch(); idem mais sans affecter la caractère à une variable.
La fonction getch() n'est pas faite pour terminer un programme. Placée en dernière instruction, c'est juste une astuce de programmation pour laisser le temps au programmeur de voir le résultat de l'affichage à l'écran avant qu'il ne disparaisse. Une fois le programme débogué, on l'enlève si elle ne sert à rien.
Par contre la fonction return (n) doit terminer le programme. La valeur n (pas forcement 0) est le code de retour du programme qui est passé au système d'exploitation (DOS). Elle peut être évaluée par l'OS grâce à la variable ERRORLEVEL pour savoir si l'exécution s'est bien passé ou si le prog a été interrompu pour cause d'erreur, par exemple, et donc faire telle ou telle action. La valeur de (n) dépend de la déclaration de la fonction main(): int main() doit retouner un entier, void main() ne retourne rien, etc... En géréral return 0 veut dire tout s'est bien passé. Mais c'est le programmeur qui décide.

Voila pour le petit cours. Je te conseille vivement de lire un bouquin sur le C, bien plus détaillé et précis que tout ce que je pourrai te dire. Salut.
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
1 mars 2008 à 17:51
tu peux utiliser
system("PAUSE");
0
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 18
1 mars 2008 à 20:50
merci cest gentil...jai deja parcouru siteduzero.com partiellement..il est trè riche..mais je lai pa encore terminé..selon vous Quel IDE dois-je utiliser???surtout si je veux faire de la programmation reseau(les sockets)....
0
Salut,

En compilateur libre il y à codeblocks.
Tu as la liste des compilateur C ici : https://cpp.developpez.com/telecharger/index/categorie/30/Outils-C-Cplusplus
Et aussi cours et tutoriels C : https://c.developpez.com/cours/
Et pour les questions, la F.A.Q C : https://c.developpez.com/faq/
0
salut tous le monde
j'ai des probleme avec le site des compilateure c que tu m'offre
et si peut faire une remarque sur le dev c++ ;il est plein de default;est on a rencontres des probleme au niveau des pointeure
et l'utilisation de la fonction new
merci pour tout
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
2 mars 2008 à 20:02
Salut,

Par contre Const int age=18; définit bien une variable de type entier initialisé à 18.

Pas tout à fait.

Une constante n'est pas une variable.
Bref, une constante c'est un emplacement mémoire non modifiable, tandis que une variable c'est un emplacement mémoire modifiable.

Ce qu'on défini avec #define on l'appele constante symbolique
0
bonjour
je suis débutant en langage C
mon question est : comment convertir une chaine de charactaire en un entier
exemple
int y;
char x[10];
printf("tappez la date ") ;
scanf("%s",x);
si j'ai tappé par exemple 10
donc x prend "10"
je veux menant que y prend 10 comme chiffre
merci de votre explication
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
3 mars 2008 à 01:51
c'est pas tres clair...
tu veux faire quoi exactement ?
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
3 mars 2008 à 09:31
salut eigeneyes

Tout d'abord ton problème n'a pas de rapport avec le problème de ce sujet. Crée un autre sujet afin de ne pas rendre le forum impossible à lire. Un sujet = une question (ou plusieurs questions par rapport au meme problème, ce n'est pas le cas ici).

Et comme l'a dit mype, ton message n'est pas très clair. Mais je crois avoir compris : tu cherches à convertir un chaine de caractere char[] en un nombre.

Je te proposes d'aller voir sur la FAQ C de developpez.net, il me semble qu'il y a tout expliqué à ce propos.


https://c.developpez.com/faq/

PS : ici : https://c.developpez.com/faq/?page=Les-chaines-de-caracteres#STRINGS_numtostr
0
eau_douce Messages postés 4 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 25 mars 2008
3 mars 2008 à 20:40
bonjours
tout d'abord pour lire un caractère de type char en entier il faut simplement écrire :
printf("entrer le caractéère :");
scanf("%d",&x);
sinon il y a une fonction s'appel "atoi(chaine): qui permet de covertir la chaine vers le nombre entier si c'est possible
exemple "123" c'est 123
et il y a atof(chaine) permet la convertion vers 1 nombre réel si c'est possible
exemple "123.12" devient 123.12
0
merci Mr mype et pacorabanix
c'est ca mon question
comment convertir une chaine a un nombre
0
merci
vous etes genial
0