Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-04-2005, 23:40   #1
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
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!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 08:13   #2
Poix81
Senior Member
 
L'Avatar di Poix81
 
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
secondo me e' piu' chiaro scrivere cosi':
Codice:
char *ciccio
ciao ciao
__________________
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
Poix81 è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 10:25   #3
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
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
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 12:28   #4
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Poix81
secondo me e' piu' chiaro scrivere cosi':
Codice:
char *ciccio
ciao ciao


ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 13:31   #5
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
Quote:
Originariamente inviato da Poix81
secondo me e' piu' chiaro scrivere cosi':
Codice:
char *ciccio
ciao ciao
Concordo, io ho sempre scritto così
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 14:35   #6
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
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.
L'asterisco e' parte integrante della definizione del tipo quindi va attaccato:

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.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 14:38   #7
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da fek
L'asterisco e' parte integrante della definizione del tipo quindi va attaccato:

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.
Scusa la domanda forse scema (per te), ma questo tipo di 'notazione', sbaglio o è maggiormente utilizzata in C++?

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
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 14:55   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da RaouL_BennetH
Scusa la domanda forse scema (per te), ma questo tipo di 'notazione', sbaglio o è maggiormente utilizzata in C++?

Dato che in C invece, si legge sempre: char *str oppure char **strPunt.

Thx.

RaouL.
Non e' una domanda scema

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;
Con la prima notazione, con un semplice colpo d'occhio puoi capire il tipo di ogni variabile solo scorrendo la colonna di sinistra di tipi, mentre con la seconda notazione sei costretto anche a guardare il nome nella seconda colonna per capire il suo tipo. Sembra una cosa di poco conto, ma quando leggi decine di migliaia di righe di codice puo' fare la differenza.

Ultima modifica di fek : 27-04-2005 alle 14:58.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 14:58   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da fek
L'asterisco e' parte integrante della definizione del tipo quindi va attaccato:

char* str;
char** strPointer;
No è specifico della variabile; ad es. per dichiarare due puntatori devi scrivere
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 14:59   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ilsensine
No è specifico della variabile; ad es. per dichiarare due puntatori devi scrivere
char *a, *b;
mentre è scorretto
char* a, b;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 15:01   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da ilsensine
No è specifico della variabile; ad es. per dichiarare due puntatori devi scrivere
char *a, *b;
mentre è scorretto
char* a, b;
Questa e' un'idiosincrasia del C, purtroppo ereditata anche dal C++.
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.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 15:06   #12
cionci
Senior Member
 
L'Avatar di cionci
 
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 15:07   #13
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da fek
Questa e' un'idiosincrasia del C, purtroppo ereditata anche dal C++.
Non ho detto che è bello a vedersi (neanche a me piace), ho solo detto che così è stato deciso...
__________________
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 15:11   #14
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Secondo me è assurdo imporre una dichiarazione per linea. Soprattutto quando le variabili cominciano ad essere tante diventa tutt'altro che leggibile...
Io invece la trovo un'ottima idea, quando le variabili diventano tante e' comodissimo scorrerle indentate in due colonne come ho descritto e con un colpo d'occhio capire il loro tipo.

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.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 15:12   #15
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da ilsensine
Non ho detto che è bello a vedersi (neanche a me piace), ho solo detto che così è stato deciso...
Questo non lo ha messo in dubbio nessuno, infatti il topic non chiedeva lumi sulla grammatica del C, ma sulla notazione usata. E di queso io stavo parlando.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 16:44   #16
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
L'asterisco e' parte integrante della definizione del tipo quindi va attaccato:

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.
Purtroppo è una questione di gusti... io ho trovato molto (molto) spesso le dichiarazioni scritte in questo modo: "char *str;", ma sinceramente lo trovo confusionario, esteticamente sgradevole e, forse, sbagliato, anche visto quello che tu dici.
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 - non criticatemi, anche qui si tratta di gusti), per separare bene le due cose.
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!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 16:47   #17
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da DanieleC88
[...] ma sinceramente lo trovo confusionario, esteticamente sgradevole e, forse, sbagliato, anche visto quello che tu dici.
[...]
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.[...]
Ehm... mi sono contraddetto da solo!

...comincio ad avere le idee un po' confuse...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 17:34   #18
Python
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++
__________________
NB: HP NX6310 | Intel Core Solo 1,66 | 1024 DDR2 5300 | 60 GB 5400 rpm | Intel GMA 950 | DVDRW DL
PC: AMD Athlon 64 3800+ | 1024 DDR 3200 | ATI X600 256MB | HDD 250 GB 7200 rpm | DVD RW DL HP
Ho concluso recentemente con: aleph0 - ayyyoooo
Python è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 17:51   #19
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
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.
Sintatticamente sono corrette entrambe, e semanticamente sono equivalenti, altrimenti una delle due non compilerebbe

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.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2005, 17:59   #20
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
Sintatticamente sono corrette entrambe, e semanticamente sono equivalenti, altrimenti una delle due non compilerebbe
Hmm... nn ci avevo pensato.
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!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Xiaomi 17: ecco il prezzo europeo del to...
Google fa tremare l'industria dei videog...
Gli sviluppatori 'abbandonano' Xbox: il ...
Galaxy S27 Ultra, è già te...
PlayStation Portal con display OLED: Son...
POCO X8 Pro e Pro Max sono quasi pronti:...
OpenAI ha bisogno di nuovi fondi: NVIDIA...
Mese nuovo, rinnovo delle offerte Amazon...
Accessori auto imperdibili su Amazon: pu...
Gli utenti iPhone possono ridurre la pr...
Come fare affari con l'usato garantito d...
Il miglior tablet di tutta Amazon, DOOGE...
Gli smartphone in super offerta su Amazo...
Produttori di memoria più severi ...
WhatsApp Business, Meta introduce costi ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v