Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Opera Neon: il browser AI agentico di nuova generazione
Opera Neon: il browser AI agentico di nuova generazione
Abbiamo provato il nuovo web browser con intelligenza artificiale della serie Opera accessibile tramite abbonamento. Ecco le nostre prime impressioni sulle funzionalità di Opera Neon basate su AI e come funzionano
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
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: 8895
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


Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
Attacco a OpenAI dal Giappone: Sora avre...
OpenAI annuncia un accordo strategico co...
Black Friday per e-bike Engwe: fino a 40...
Una PS5 grande come un tostapane: dove n...
Intel aveva pronta una scheda video di f...
Filippo Luna, CEO di Aira Italia: "...
Task Manager non si chiude e si moltipli...
Il CEO di OpenAI si lamenta della sua Te...
Shadow AI: il lato invisibile dell’innov...
Windows 7 ridotto a soli 69 MB: l'esperi...
Ancora problemi per i dischi SMR di West...
IA, zero trust, cifratura post quantum: ...
Accise diesel, la Legge di Bilancio 2026...
Chi possiede un'auto con motore PureTech...
Trump blocca le GPU NVIDIA Blackwell in ...
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: 01:55.


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