Ecriture des pointeurs [C] - Programmation
Marsh Posté le 24-02-2002 à 21:41:51
Parce que ca permet de faire des declarations comme celle ci:
int *p, q, **r;
A+,
Marsh Posté le 24-02-2002 à 21:43:25
pour un seul truc ca change rien. question de gouts je pense
on ecrit bien la plus part du temps char*
Marsh Posté le 24-02-2002 à 21:50:50
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
Marsh Posté le 24-02-2002 à 22:57:49
c sur ct une question ki m empechais de dormir moi aussi....
Marsh Posté le 24-02-2002 à 23:51:19
Moi je préfère int* i car ça indique clairement que le type de i est int*.
Marsh Posté le 24-02-2002 à 23:56:16
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
Marsh Posté le 25-02-2002 à 00:29:11
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
Marsh Posté le 25-02-2002 à 00:42:38
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
Marsh Posté le 25-02-2002 à 00:53:10
ok ok,
c parceque je connais pas directx
perso, tout renomer je trouve ca un peut lourd ... un pointeur c pas la mort
Marsh Posté le 25-02-2002 à 01:20:11
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à.
Marsh Posté le 25-02-2002 à 01:23:43
[HS]
Toute reconciliation est desormais
impossible
[/HS]
A+
LEGREG
Marsh Posté le 25-02-2002 à 11:12:19
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]
Marsh Posté le 26-02-2002 à 14:27:13
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+,
Marsh Posté le 26-02-2002 à 21:33:37
hey mais :
Citation : int* toto; |
c pas la norme tout ca
Marsh Posté le 27-02-2002 à 00:00:22
Pas la norme? En quoi? Et c'est normé???
Marsh Posté le 27-02-2002 à 00:09:51
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 :
|
Mais tout ça c'est un style perso ... c'est comme écrire i=i+2; ou i = i + 2;
Marsh Posté le 27-02-2002 à 07:00:13
Oki, moi qui croyait que tout le monde utilisait *nombre pour initialiser un pointeur... Je me suis bien trompé
Marsh Posté le 24-02-2002 à 21:39:38
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.
Vous en pensez quoi?