Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1756 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [c/c++] comment définir une constante en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c/c++] comment définir une constante en C

n°814960
louphik
Posté le 04-08-2004 à 15:23:44  profilanswer
 

Savez-vous si on peut définir des constantes en C un peu comme en JAVA avec "static final" (surtout final). Il y a bien le mot "static" en C mais j'ai pas l'impression qu'il garantisse que la variable reste inchangée du début à la fin.
Merci

mood
Publicité
Posté le 04-08-2004 à 15:23:44  profilanswer
 

n°814963
masklinn
í dag viðrar vel til loftárása
Posté le 04-08-2004 à 15:27:52  profilanswer
 

keyword const


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°814970
Taz
bisounours-codeur
Posté le 04-08-2004 à 15:36:00  profilanswer
 

static n'a rien à voir avec la constness de quoi que ce soit. static à le sens de 'privé' en C.

n°814979
masklinn
í dag viðrar vel til loftárása
Posté le 04-08-2004 à 15:45:48  profilanswer
 

Taz a écrit :

static n'a rien à voir avec la constness de quoi que ce soit. static à le sens de 'privé' en C.


Taz tu te JVCDises
constance  :whistle:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°815025
Caedes
Posté le 04-08-2004 à 16:23:14  profilanswer
 

#define MYCONST_X 3   :whistle:


Message édité par Caedes le 04-08-2004 à 16:23:23
n°815168
Sve@r
Posté le 04-08-2004 à 18:16:12  profilanswer
 

const double pi=3.1415927;
Mais personnellement, je préfère utiliser des macro
#define PI      (3.1415927)
 
Le mot clef "static" mis pour une variable locale (à une fonction) signifie que le contenu de ta variable n'est pas perdu lorsque ton programme quitte la fonction et que tu le retrouves tel quel lorsqu'il y revient (par exemple si tu veux programmer un compteur d'appels)
 
Le mot clef "static" mis pour une fonction signifie que ta fonction ne sera connue que dans ce fichier source. par exemple, si tu travailles sur un gros projet avec plusieurs fichiers sources dont chacun contient les gros éléments du projet, si tu as besoin, pour un source particulier, d'une petite fonction "lambda" ne faisant qu'un truc particulier (un calcul compliqué par exemple), tu peux la déclarer en "static". Cette fonction "lambda" ne sera connue que du source dans lequel elle se trouve et, si tu as une autre fonction "lambda" à faire pour faire un autre truc dans un autre source, tu la mets aussi en "static". Comme cela, les deux fonctions "lambda" (qui ont le même nom mais qui sont chacune locale à leur source) n'iront pas se foutre mutuellement la zone l'une l'autre lorsque le projet sera compilé

n°815403
leneuf22
Posté le 04-08-2004 à 23:24:20  profilanswer
 

Ouais, "static" a deux sens différents en C, selon le contexte dans lequel il est utilisé : segment de données dans un cas et confidentialité dans l'autre. Mais pas que pour les fonctions, c'est pareil pour les variables globales (extern dans un module et static dans un autre ça marchera pas)
 
Et de plus ton #define est vraiment pas terrible : pas de type -> tu laisse faire le compilateur quelque chose qu'il ne te coûte rien de faire et qui lève toute ambiguité.

n°815452
Sve@r
Posté le 05-08-2004 à 07:12:16  profilanswer
 

Je ne vois pas de réel soucis avec un #define. Le préprocesseur remplacera, lors de la traduction du ".c" en ".i", la chaîne "PI" par la constante "3.1415927". Cette constante étant écrite en conformité avec l'écriture des valeurs en virgule flottante, le compilateur y verra toujours un double (ou un float). C'est de cette ambiguité dont tu parles ?


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°815454
matafan
Posté le 05-08-2004 à 07:19:51  profilanswer
 

Le problème des #define c'est aussi que quand veux debugger ton programme, ben t'as plus le symbole. Pour ça le const est mieux.

n°815457
Sve@r
Posté le 05-08-2004 à 07:52:31  profilanswer
 

Je suis aussi d'accord. Le const a des avantages et le #define en a d'autres. Ensuite, tout est une question de choix...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [c/c++] comment définir une constante en C

 

Sujets relatifs
Comment mettre une constante dans la partie private d'une classe??[Java] Définir le curseur au dessus d'un JEditorPane...
[CSS] definir :hover dans l'attribut style directement ?VBS - Définir un range IP
Vitesse constante ?Tomcat Définir le chemin d'une src de données sans utiliser server.xml
définir une fonction dans une application MFC[Javascript] Définir des array d'entiers ?
Définir la taille d'un document HTMLDéfinir le point d'entrée dans une appli-web (dans le web.xml)
Plus de sujets relatifs à : [c/c++] comment définir une constante en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR