|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
[C] Dove mettete il * ?
Piccola domanda: dove mettete l'asterisco nelle dichiarazioni del C(++)? Io lo metto staccato dai nomi (es.: "char * ciccio", non "char *ciccio"), perché, in fin dei conti, definisce un particolare tipo.
Diverso, naturalmente, il discorso del dereferencing, lì io uso "*dst++ = '\0'", tanto per fare un esempio.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
|
secondo me e' piu' chiaro scrivere cosi':
Codice:
char *ciccio
__________________
MyPC: A7A266 - Thoro1800+@2000+ - SK6 - 512DDR - FX5200 128MB - SBLive!1024 - MAXTOR120GB - Liteon LTR52327S LDW-451S HTPC: Case uATX QTec - GA 7VM400M - Duron1600 - ALX800 - 256DDR - Radeon7000 - LiteOn166 - Pow by GeexBox 0.98.5 Utenti con cui ho trattato |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
secondo imho molto + leggibile.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao |
|
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
char* str; char** strPointer; La versione "char * str" ad una lettura veloce assomiglia ad una moltiplicazione e puo' portare confusione. Non e' una questione di gusti, ma di leggibilita' del codice.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Dato che in C invece, si legge sempre: char *str oppure char **strPunt. Thx. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Non credo che l'uso di una notazione o l'altra dipenda dal linguaggio, ho visto la notazione "errata" usata spesso anche in C++. Forse e' piu' facile incontrarla in C perche' il codice C e' di solito piu' vecchio e la notazione "corretta" e' solo recentemente diventata di uso comune. Ad esempio e' consigliata Da Herb Sutter e Alexandrescu in "C++ Coding Standards". Ti faccio un esempio del perche' e' preferibile la prima notazione. Spesso si usa indentare le dichiarazioni di variabili per rendere piu' facile la lettura: Codice:
char a; int b; char* str;
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 27-04-2005 alle 14:58. |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
char *a, *b; mentre è scorretto char* a, b;
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Infatti tutti i coding standard (decenti) impongono di dichiarare sempre una sola variabile per tipo. I nuovi linguaggi lo impongono nella loro grammatica. Da evitare: char *a, *b; Molto piu' leggibile: char *a; char *b; L'asterisco e' logicamente parte del tipo della variabile, purtroppo il C non lo impone, e' cura del buon programmatore (o dei coding standard) imporselo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Secondo me è assurdo imporre una dichiarazione per linea. Soprattutto quando le variabili cominciano ad essere tante diventa tutt'altro che leggibile...
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Cose tipo: int a, *b, c, d*, *d, e sono ad esempio indicate come "Coding Horrors" in "Code Complete 2". Da 10 anni a questa parte dichiaro una sola variabile per tipo e non mi sono sorpreso piu' di tanto quando ho visto questo uso imposto nei Coding Standard di ogni azienda dove ho lavorato.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Io uso sempre l'asterisco staccato dal nome del tipo e dal nome della variabile: "char *<tab>nomevariabile;". A volte anche con tabulazioni multiple (uso tab di 2 spazi Per tornare all'asterisco, secondo me (parere personale di un povero autodidatta, sia ben chiaro) l'asterisco non va nemmeno attaccato al nome del tipo, perché, se non erro, si tratta di un qualificatore, che quindi è specifico di una particolare variabile. In fondo sono un po' indeciso anch'io su come usare l'asterisco, visto che sintatticamente è probabile che sia più corretta la forma di cionci, ilsensine, VICIUS, etc. Per le dichiarazioni, anche io uso una sola dichiarazione per linea. E, ovviamente, questo a volte diventa scomodo se bisogna lavorare con parecchie variabile, quindi in alcuni casi dichiaro pù variabili per linea, ma non se queste sono puntatori, proprio per evitare gli orrori di cui ci hai fatto qualche esempio.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
...comincio ad avere le idee un po' confuse...
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
01. Pointers and references
char* p = "flop"; char& c = *p; -NOT- char *p = "flop"; // wrong char &c = *p; // wrong Reason: In C++, definitions are mixed with executable code. Here, p is being initialized, not *p. This is near-universal practice among C++ programmers; it is normal for C hackers to switch spontaneously as they gain experience. credo sia quello che vi interessa.... l'ho letto in un txt trovato per caso mentre spulciavo un pò di documentazione su c/c++ |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Riguardo al lasciare uno spazio prima dell'asterisco, qui e' come dici tu quasi una questione estetica; io per mantenere consistenza ed evitare di confondermi con l'operatore di moltiplicazione preferisco evitare lo spazio.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Inoltre, anche il messagio di Python toglie ogni dubbio: sarebbe meglio mettere il puntatore non distanziato dal tipo.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:35.


















