[C] Ecriture des pointeurs

Ecriture des pointeurs [C] - Programmation

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?

Reply

Marsh Posté le 24-02-2002 à 21:39:38   

Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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*


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

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 :)

Reply

Marsh Posté le 24-02-2002 à 22:57:49    

c sur ct une question ki m empechais de dormir moi aussi.... :D


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

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*.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

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

Reply

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 :??:

Reply

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

Reply

Marsh Posté le 25-02-2002 à 00:53:10    

ok ok,  
c parceque je connais pas directx :d
 
perso, tout renomer je trouve ca un peut lourd ... un pointeur c pas la mort:)

Reply

Marsh Posté le 25-02-2002 à 00:53:10   

Reply

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à.

Reply

Marsh Posté le 25-02-2002 à 01:23:43    

[HS]
Toute reconciliation est desormais
impossible ;)
[/HS]
 
A+
LEGREG

Reply

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]


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 26-02-2002 à 21:33:37    

hey mais :  

Citation :

int* toto;


c pas la norme tout ca  :sarcastic:  :D


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 27-02-2002 à 00:00:22    

Pas la norme? :confused: En quoi? Et c'est normé???


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

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 :
  1. int * ptr;


Mais tout ça c'est un style perso ... c'est comme écrire i=i+2; ou i = i + 2;


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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é :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed