Programmantion c

fanimed Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
 eigeneyes -
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

amigo
 
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   Statut Membre Dernière intervention   18
 
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
amigo
 
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   Statut Membre Dernière intervention   18
 
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
amigo
 
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   Statut Membre Dernière intervention   437
 
tu peux utiliser
system("PAUSE");
0
fanimed Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   18
 
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
Dany
 
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
aero-lyes
 
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
eigeneyes
 
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   Statut Membre Dernière intervention   437
 
c'est pas tres clair...
tu veux faire quoi exactement ?
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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   Statut Membre Dernière intervention  
 
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
eigeneyes
 
merci Mr mype et pacorabanix
c'est ca mon question
comment convertir une chaine a un nombre
0
eigeneyes
 
merci
vous etes genial
0