Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Star Wars Zero Company è l'erede di XCOM 2
Star Wars Zero Company è l'erede di XCOM 2
Bit Reactor porta nell’universo di Star Wars una struttura tattica che richiama apertamente XCOM 2, ma la arricchisce con legami tra i personaggi, progressione ruolistica, gestione della base e un sistema di combattimento costruito attorno a tre Punti Azione e alle risorse condivise della squadra
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-09-2008, 17:14   #1
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
[C] Strutture con campi assegnati con il punto

Salve a tutti,

stavo vedendo un modulo del kernel di Linux che ha una struttura così definita:
Codice:
static struct i2c_algorithm ov518_i2c_algo = {
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 14)
	.name =			"OV518 algorithm",
	.id =			I2C_ALGO_SMBUS,
#endif
	.smbus_xfer =		ov518_smbus_xfer,
	.algo_control =		ov51x_i2c_control,
	.functionality =	ov518_i2c_func,
};
Sebbene capisco che si stanno facendo delle assegnazioni dentro una struttura dichiarata lì nel modulo, volevo sapere che significato ha il "punto" prima di functionality, di algo_control, ecc.
Inoltre, perché si fa così?

E' forse la stessa cosa che si fa dopo aver dichiarato una struttura, e tramite il nome della variabile di quel tipo si mette il punto e si assegnano i valori?

Ovvero:
ov518_i2c_algo.functionality = ov518_i2c_func; ??

Grazie.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2008, 17:30   #2
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Perchè se non fosse ostico e cripitco non lo avrebbero messo nel kernel linux

Cmq bisogna notare che prima della graffa c'è un uguale, e che le assegnazioni sono terminate da , invece che da ;... per cui quella la non è una definizione, ma un assegnamento.
Il .comunque non so a che serva...
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 23-09-2008 alle 17:35.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2008, 17:49   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Infatti non è una dichiarazione. Serve ad inizializzare solo certi campi (che nelle struct hanno un nome). Potrebbe essere una struct con 200 elementi e ne inizializzi solo il terzo (per esempio), se vuoi, con quella scrittura.

ciao
__________________

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 23-09-2008, 17:58   #4
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Ok, sul fatto che era una inizializzazione c'ero arrivato, ma quindi è una struttura dichiarata altrove? Ho visto che nel kernel (2.6.25) è definita in linux/i2c.h ma i campi non corrispondono.

Tipicamente io posso definire una una struttura in un file .h, poi in un mio file sorgente .c posso dichiararla come variabile, inizializzarla e usarla ecc..

Quando ci sono quei punti invece, che differenza c'è nell'utilizzo, a parte che è una inizializzazione di campi?
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2008, 18:06   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fbcyborg Guarda i messaggi
Ok, sul fatto che era una inizializzazione c'ero arrivato, ma quindi è una struttura dichiarata altrove? Ho visto che nel kernel (2.6.25) è definita in linux/i2c.h ma i campi non corrispondono.
Ovvero? Quali sono le differenze?
Quote:
Originariamente inviato da fbcyborg Guarda i messaggi
Quando ci sono quei punti invece, che differenza c'è nell'utilizzo, a parte che è una inizializzazione di campi?
Che inizializzi al valore che vuoi tu solo taluni campi, gli altri sono azzerati:
Codice:
#include <stdio.h>

struct prova
{
  int primo;
  int secondo;
  int terzo;
};

int main()
{
  struct prova P = { .secondo = 10 };

  printf("P\n{\n\t.primo = %d;\n\t.secondo = %d;\n\t.terzo = %d;\n}\n", P.primo, P.secondo, P.terzo);
  return 0;
}
Restituisce:
Codice:
$ ./prova
P
{
        .primo = 0;
        .secondo = 10;
        .terzo = 0;
}
Anche se, in verità, non so quanto sia standard:
Codice:
gcc -W -Wall -ansi -pedantic main.c -o ./struct
main.c: In function 'main':
main.c:12: warning: ISO C90 forbids specifying subobject to initialize
__________________

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 23-09-2008, 18:09   #6
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Grazie è chiarissimo l'esempio. Ora non ho più dubbi!
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Il CEO di MongoDB lascia tutto e passa a...
Caro energia, l'UE raccomanda di abbassa...
AMD acquisisce World Labs: 8,2 miliardi ...
Google perde la testa: AI Overview conso...
Anthropic presenta Claude Sonnet 5.5, e ...
ESA e ClearSpace svilupperanno un satell...
Oracle, stock option da quasi un miliard...
Starship: si è conclusa anticipat...
Un computer quantistico ha funzionato ne...
Sovranità sui dati: AWS è ...
Il nuovo nome della distro Linux mobile ...
Due ventole da 220 mm e non solo: Cooler...
Truffa telefonica via Google Ads: il bro...
Google pensiona le Gems di Gemini: cosa ...
Flight 14: incertezza per un problema a ...
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: 06:35.


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