Sondage Pointeur - C - Programmation
Marsh Posté le 09-02-2004 à 13:35:48
int* p;
le pointeur est une notion intégrée au type: tu manipules un pointeur d'integer, pas juste un integer, pas juste un pointeur.
Marsh Posté le 09-02-2004 à 13:36:25
drasche a écrit : int* p; |
tout à fait d'accord...
Marsh Posté le 09-02-2004 à 13:37:23
drasche a écrit : int* p; |
nan, pas en C, perdu et dommage
Code :
|
Marsh Posté le 09-02-2004 à 13:37:56
comment ça pas en C?
Marsh Posté le 09-02-2004 à 13:38:27
ReplyMarsh Posté le 09-02-2004 à 13:39:00
bin t'essaies d'assigner une constante à un pointeur et le compilo se plaint, je vois pas ce qu'il y a d'anormal là-dedans, ça correspond à ma définition.
Marsh Posté le 09-02-2004 à 13:39:45
La première, pour montrer que le * est un modifier de la variable et pas du type.
int *p, i; i n'est pas un pointeur
Marsh Posté le 09-02-2004 à 13:39:49
drasche a écrit : bin t'essaies d'assigner une constante à un pointeur et le compilo se plaint, je vois pas ce qu'il y a d'anormal là-dedans, ça correspond à ma définition. |
alors pkoi il dit rien sur mon assignation a b ?
Marsh Posté le 09-02-2004 à 13:41:10
chrisbk a écrit : alors pkoi il dit rien sur mon assignation a b ? |
oui je vois
Marsh Posté le 09-02-2004 à 13:41:23
drasche a écrit : bin t'essaies d'assigner une constante à un pointeur et le compilo se plaint, je vois pas ce qu'il y a d'anormal là-dedans, ça correspond à ma définition. |
il veut dire que pour avoir 2 pointeurs, on ecrit :
int *a,*b;
et pas
int* a,b;
Marsh Posté le 09-02-2004 à 14:08:13
ReplyMarsh Posté le 09-02-2004 à 14:09:42
Lasardine a écrit : pourquoi |
Parceque ...
Marsh Posté le 09-02-2004 à 14:14:10
Mr yvele a écrit : |
De toute façon pour que cela soit plus simple il suffit d'écrire une décalration par ligne.
int* a=NULL; |
Personnellement je considère que "int*" est un type différent de "int" même si "*a" est un int.
Après chacun fait comme il le souhaite mais il faut aussi penser à la lisibilité du code !
Marsh Posté le 09-02-2004 à 14:52:20
ouais, ça doit etre ça, mais attention, sur mon Amiga 5402 ça marche pas des fois....je suis obligé me mettre int * p, avec deux espaces derriere l'étoile........
Marsh Posté le 09-02-2004 à 15:04:52
Lasardine a écrit : ah bon, ça c bizarre..ça te met koi comme message ? |
fais gaffe, t'as le detecteur a ironie qui est cassé
Marsh Posté le 09-02-2004 à 15:16:48
vive le 2eme degres quoi
Marsh Posté le 09-02-2004 à 15:24:59
ba, en fait ça plante à la compilation, ça me met : warning line 105, fonction is not a called lech ftp wind bug 300/...df...1000...........je comprend pas !!!
Marsh Posté le 09-02-2004 à 19:20:13
lol !!!!!
Marsh Posté le 09-02-2004 à 20:41:16
drasche a écrit : int* p; |
Je plussoie vigoureusement. Ceux qui utilisent autre chose méritent le bûcher.
Marsh Posté le 10-02-2004 à 04:38:41
C'est pas vraiment de l'enculage de mouche : il y a de bonnes raisons qui font que certaines notations sont à éviter.
La plus mauvaise notation est sans doute « int* p » (hein drasche ). Parce que justement le pointeur n'est pas vraiment une notion intégrée au type. Si tu écrit quelque chose du genre :
Code :
|
ça te donnes clairement l'impression que i et j sont des pointeurs. Mais bien sûr seul i est un pointeur, et j est un int. Donc pour faire clair il « faut » que l'étoile soit plus près de la variable que du type. Ou en tout cas pas plus près du type que de la variable.
Bref pour moi la notation la plus « correcte » est aussi la plus utilisée :
Code :
|
Marsh Posté le 10-02-2004 à 06:07:00
en vrai on s'en fiche.
Je ne réponds meme pas au sondage...
LeGreg
Marsh Posté le 10-02-2004 à 06:20:11
Non on ne s'en fiche pas : en lisant les commentaires plus haut tu te rendra compte que la pluspart de ceux qui pronnent le « int* i » n'avaient en fait pas conscience du problème de priorité. Cette notation est trompeuse et donc dangereuse. C'est comme si tu écrivais « 1+2 * 3 ». Mais en pire car le « piège » est moins connu.
Marsh Posté le 10-02-2004 à 07:24:03
tu confonds deux choses:
- la priorité est certes importante. On peut en discuter cinq minutes après on passe à des choses plus intéressantes.
- la façon dont on écrit la déclaration ne l'est pas.
sinon il aurait aussi fallu proposer:
int //\\ tni |
ce qui est vachement plus créatif.
A+
LeGreg
Marsh Posté le 10-02-2004 à 07:27:22
LeGreg a écrit : |
Tiens, un étudiant qui n'a jamais bossé en entreprise avec des coding styles imposés pour unifier la présentation du code et en faciliter la relecture.
http://geosoft.no/style.html
Marsh Posté le 10-02-2004 à 07:45:08
kadreg a écrit : |
Tu sais Bush a sorti une loi qui dit en gros que chaque matin les petits écoliers américains doivent faire une prière au drapeau.
..Le rapport ?
- je ne suis plus étudiant (1). Encore heureux sinon je devrais probablement faire la prière au drapeau tous les matins,
- l'existence de la loi ne justifie pas le bien fondé de la loi et encore moins son universalisme (2). Elle s'applique en fonction du contexte. Tu aurais probablement déjà implosé avec toutes les lois contradictoires qui s'appliquent à toi. Cette nuance est ce qui différencie les fanatiques des gens bien.
Je ne sais pas pour toi mais j'ai pu bosser dans au moins quatre entreprises différentes (je ne compte pas les stages non rémunérés) et à chaque fois j'ai appliqué les règles locales quant à l'écriture du code. C'est cette expérience-là qui me permet aujourd'hui de dire que la position de l'* ou de la , je m'en fiche. Note que je mets les accents sur les mots français et que je n'en mets pas sur les mots anglais.
LeGreg
Marsh Posté le 10-02-2004 à 07:50:23
LeGreg a écrit : |
Etonnant, c'est justement le fait de devoir travailler dans des entreprises à maintenir du code agé d'une dizaine d'année qui m'a justement montré l'intêret d'une convention (et pas loi) d'écriture de code. Avoir le code le plus impersonnel permet une relecture plus simple, puisque on limite les variations et donc les petits "accros" lors de la relecture.
Si en plus cette convention prend en compte les caractéristiques du langage pour en éliminer les pièges classques, on est gagnants en maintenabilité.
Marsh Posté le 10-02-2004 à 07:57:20
kadreg a écrit : |
Franchement entre les gens qui disent que {
se met à la ligne et ceux qui pensent que ça ne doit jamais etre tout seul.
Ceux qui trouvent que le one line instruction doit etre aligné sur la boucle du for ou sur le if et ceux qui trouvent qu'il faut tout encadrer avec des {.
Ceux qui considère que mettre trop de parenthèse est le signe d'une ignorance des règles de base du C++ et d'autres une garantie de maintenabilité.
Ceux qui commencent leur nom de variable par une majuscule et ceux qui commencent par les initiales du type en minuscule.
Ceux qui passent tout par pointeur et ceux qui passent tout par référence.
J'ai vraiment du mal à croire que tes fameuses règles soi-disant universelle survivent quand tu passes d'un boulot à un autre.
De toute façon, le chef a toujours raison.
LeGreg
Marsh Posté le 10-02-2004 à 08:08:52
LeGreg a écrit : |
En C++, ce n'est effectivement pas le cas, les règles de codages sont généralement locales. Mais ce n'est pas interdit d'être logique.
En revanche, en java, a peu près tout le monde applique le "sun coding guide", et c'est quand même plus sympa.
Marsh Posté le 09-02-2004 à 13:33:20
En tant que programmeur amateur, une question s'est posée à moi...
J'attend votre avis avec impatiente...