Esiste un sinonimo di "Blittable" che è più comune?

5

Esiste un nome più comune per un tipo di dati "Blittable"? Nel mio software c'è una distinzione tra una struttura di dimensioni variabili e una struttura di dimensioni fisse che ha un comportamento simile a "blittable" ma ho visto solo il nome utilizzato nel software Microsoft.

    
posta user76519 03.01.2013 - 01:52
fonte

4 risposte

12

Il termine generico sarebbe Block trasferibile. Si origina con il PDP-10 come "Block Transfer Instruction ed è stato abbreviato come "BLT", quindi "Blit o Blittable". Aveva a che fare con il passaggio di qualcosa dalla memoria alla memoria senza passare attraverso l'accumulatore come avrebbe fatto l'istruzione di movimento.

    
risposta data 03.01.2013 - 02:07
fonte
7

Secondo Wikipedia i tipi Blittable provengono da:

A memory copy operation is sometimes referred to as a 'block transfer'. This term is sometimes abbreviated as BLT (there's actually a BLT instruction on the PDP-10) and pronounced 'blit'. The term 'blittable' expresses whether it is legal to copy an object using a block transfer.

Nel framework Microsoft .NET, i dati sono spesso rappresentati in memoria in modo diverso nel codice gestito e non gestito Tuttavia, i tipi blittable sono definiti come aventi una presentazione identica in memoria per entrambi gli ambienti e possono essere direttamente condivisa. Quindi, questo concetto di tipi di dati blittable e non-blittable si applica specificamente al problema della conversione dei dati tra la memoria gestita e non gestita.

    
risposta data 03.01.2013 - 02:54
fonte
6

La risposta di World Engineer è abbastanza buona e offre una buona prospettiva storica. Per rispondere effettivamente alla domanda che hai chiesto però:

Is there a synonym for “Blittable” that is more common?

Sì. In C # tali tipi sono correttamente denominati tipi non gestiti . La sezione 18.2 della specifica definisce ricorsivamente un "tipo non gestito" come:

  • sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal o bool.
  • Qualsiasi tipo di enum.
  • Qualsiasi tipo di puntatore.
  • Qualsiasi tipo di struct definito dall'utente che contiene solo campi di tipi non gestiti.
risposta data 04.01.2013 - 17:37
fonte
1

Raramente, puoi usare il termine memoria mappata . Questo a volte si riferisce a strutture che sono state mappate su un indirizzo di memoria specifico (o perché è stato bitblato lì, usando DMA, o in modo da poter essere bitblato) ma è stato anche usato per riferirsi ai dati che sono stati mappati su una struttura fissa in modo che le strutture interne possano essere condivise.

    
risposta data 03.01.2013 - 10:56
fonte

Leggi altre domande sui tag