Envoyé par koala01Je ne vois pas du tout ce que tu veux dire par là. Peux-tu détailler je te prie ?Envoyé par Emmanuel Delahaye
Envoyé par koala01Je ne vois pas du tout ce que tu veux dire par là. Peux-tu détailler je te prie ?Envoyé par Emmanuel Delahaye
Il y a deux facons de voir le typage je pense:
Il y a ta manière (niveau compilateur) et celle qui consiste à mesurer selon les conversions de type implicite que le langage authorise et sur ce plan là le C est faiblement typé
Bah, en C :Envoyé par BVertut
est correct. En C++, ça fait un scandale et il faut mettre un cast :
Code : Sélectionner tout - Visualiser dans une fenêtre à part char *p = malloc(...):
Code : Sélectionner tout - Visualiser dans une fenêtre à part char *p = static_cast<char *> malloc(...);
On ne dit pas le contraire, mais ca reste quand meme sérieusement plus fortement typé que le php, par exemple, qui permet dans le meme code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $variable="ma chaine"; ... $variable=3;
Un typage fort est un typage qui peut être déterminé de manière statique (de manière explicite) avant même l'exécution.
Un typage faible est un typage qui ne peut être déterminé que de manière dynamique (de manière latente) durant l'exécution.
Aho, Ullman et Sethi ne parle même pas de typage fort ou faible, mais uniquement de vérification statique ou dynamique – Goos et Waite parlent de typage latent/faible ou manifeste/fort.
En fait, on devrait faire plus de distinction pour être clair dans le typage fort. Car effectivement, le typage du C n'est pas le même que celui du C++ qui n'est pas le même que celui de caml et pourtant ils sont tous fort/statique/explicite.
Le C est fortement typé car le type est déterminé de manière statique à la compilation. S'il était faiblement typé, il n'y aurait pas de besoin de déclarer le type des variables lors de la déclaration de celle-ci. Comme le C++ donc.
@Emmanuel Delahaye. Dans l'exemple que tu donnes on peut arguer que le type est celui d'un pointeur. Le typage fort est donc respecté. Certes on pourrait dire que le type est celui d'un pointeur sur un caractère. Mais on rentre dans des subtilités du typage fort. Cela reste du typage fort.
Je ne crois pas que la notion de typage fort ou faible soit liée au fait qu'on ait un typage statique ou dynamique. Python, par exemple, est un langage à typage dynamique mais fortement typé (Duck typing).Envoyé par Garulfo
Thierry
pour voir si des variables sont définies, on utilise les macros du genre
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #ifdef PI #define R 1 #ifndef #define PI 3.14 #define R 1 #endif
Commentaire : si PI n'est pas défini par l'inclusion précédente d'un en-tête le définissant, chaque fois que le préprocesseur rencontre PI dans le programme, il le remplace par 3.14, qui est la valeur prévue dans ce cas. Dans tous les cas, le rayon vaut 1.
Correct ?
Pour le typage fort/faible, pour moi le typage fort c'est le fait que l'on ne peut pas déclarer une variable comme int (entier) et lui attribuer un float (nombre à virgule flottante). Ça permet d'ajuster le code que l'on écrit à ses besoins.
FAUXEnvoyé par kromartien
ton ifndef ne marche pas. Ce qu'il faut faire pour faire ce que tu dis est :
ou si tu veux un if..else mais c'est moins élégant (répétition ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #define R 1 #ifndef PI #define PI 3.14 #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #ifdef PI #define R 1 #else #define R 1 #define PI 3.14 #endif
Et encore, à ce moment là, on n'a plus affaire à une variable, mais à une constante, et on ne vérifie pas si elle existe, mais si elle est définie
Sans compter que cela ne fonctionne que sur les constantes défines par macros
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager