Oki, moi qui croyait que tout le monde utilisait *nombre pour initialiser un pointeur... Je me suis bien trompé :)
HelloWorld
Histoire de mettre mon petit grain de sel ...
"de toute façon le nom du pointeur ne sera plus jamais précédé du * après son initialisation"
*pointeur = 10;
C'est pas si illogique alors ! ;)
Perso, moi je fait :
Code :
int * ptr;
Mais tout ça c'est un style perso ... c'est comme écrire i=i+2; ou i = i + 2;
Krueger
Pas la norme? :confused: En quoi? Et c'est normé???
MrTonio
hey mais :
Citation :
int* toto;
c pas la norme tout ca :sarcastic: :D
gilou
cycojesus a écrit a écrit :
une seule déclaration par ligne => plus clair à mon avis
int* p;
int q;
int** r;
Quand j'ecris une fonction avec des manips de caracteres (un petit exemple: transformation d'une uri locale en path hfs (le fs des Macs), avec plusieurs pointeurs auxiliaires pour maniper les chaines, je vois pas pourquoi je devrais me les mettre suer plusieurs lignes. Mais bon, c'est une question de gout, ca.
Je pense que la raison initiale pour authoriser ce genre d'ecriture (int *b, **c; ) c'est que au tout debut du C, c'etait sans doute tapé sur cartes perforées. Celui qui s'est deja fadé ça dans sa vie comprendra pourquoi la compacité est privilegiée.
A+,
cycojesus
gilou a écrit a écrit :
Parce que ca permet de faire des declarations comme celle ci:
int *p, q, **r;
A+,
une seule déclaration par ligne => plus clair à mon avis
int* p;
int q;
int** r;
[jfdsdjhfuetppo]--Message édité par cycojesus--[/jfdsdjhfuetppo]
LeGreg
[HS]
Toute reconciliation est desormais
impossible ;)
[/HS]
A+
LEGREG
Kristoph
J'ai horreur des LPxxx de Windows. Je trouve ca super lourd quand même. Non perso quels besoins il y a de definir des macros et des typedefs à tout bout de champs pour un truc aussi futile que de simples pointeur ?
---
Kristoph qui viens de passer une demi heure à retirer des LPCHAR et autres joyeusetés d'un programme qu'il converti pour Unix parceque ça n'avais rien à faire là.
slvn
ok ok, c parceque je connais pas directx :d
perso, tout renomer je trouve ca un peut lourd ... un pointeur c pas la mort:)
LeGreg
ben non mais en programmation win32
LPINT est deja defini.
par exemple toutes les structures de DirectX
viennent avec leur type pointeur LPMachin.
A+
LEGREG
slvn
legreg a écrit a écrit :
NB, si tu ne veux pas de confusion possible:
LPINT p;
(avec un typedef int* LPINT;
si tu ne programmes pas sous Windows)
A+
LEGREG
pkoi ca poserait un pb avec windows :??:
LeGreg
NB, si tu ne veux pas de confusion possible:
LPINT p;
(avec un typedef int* LPINT;
si tu ne programmes pas sous Windows)
A+
LEGREG
Krueger
Moi je préfère int* i car ça indique clairement que le type de i est int*.
MrTonio
c sur ct une question ki m empechais de dormir moi aussi.... :D
Alload
gilou a écrit a écrit :
Parce que ca permet de faire des declarations comme celle ci:
int *p, q, **r;
A+,
C'est vrai, j'avais pas pensé à ce cas de figure. Merci :)
deathsharp
pour un seul truc ca change rien. question de gouts je pense
on ecrit bien la plus part du temps char*
gilou
Parce que ca permet de faire des declarations comme celle ci:
int *p, q, **r;
A+,
Alload
Alors voilà, je me suis toujours demandé pourquoi on écrivait: int *nombre, pour créer un pointeur de int.
Pourquoi n'écritons pas: int* nombre? Je trouve ça plus logique, car de toute façon le nom du pointeur ne sera plus jamais précédé du * après son initialisation. Donc on pourrait dire que int* représente un pointeur tout simplement.