Is there a more common name for a "Blittable" data type? In my software there is a distinction between a variable sized structure and a fixed size structure that has a similar behavior to "blittable" but I have only seen the name used in Microsoft software.

  • 7
    "Blit" is a very old term, much older than Microsoft, and still in common use among video-processor folks. Use it and be happy. Commented Jan 3, 2013 at 1:55

4 Answers 4


The generic term would be Block Transferable. It originates with the PDP-10 as the "Block Transfer Instruction and was abbreviated as "BLT", hence "Blit or Blittable". It had to do with passing something through from Memory to Memory without going through the Accumulator like the Move Instruction would.

  • I'd like to name a variable structure "struct" and the blittable type something like "blockstruct". Any suggestions on a name that is more clear? I didn't like "blittable" as a name.
    – user76519
    Commented Jan 3, 2013 at 1:20
  • 2
    Ahhhhhh, the PDP10. One of the sweetest machines to program in assembly there ever was. Some of the more interesting capabilities of SAIL were based on amazing (and bizarre) PDP10 instructions and it's addressing mechanisms. JFFO, anyone? Commented Jan 3, 2013 at 1:50
  • 1
    @user76519 what don't you like about the word blittable? It's certainly the best word for the scenario you have described. Perhaps there is some other/additional concept you are trying to convey?
    – MattDavey
    Commented Jan 3, 2013 at 12:12
  • @MattDavey After more of the comments I think you are right that "blittable" is probably the right term. I guess I'll call it "struct" or "blitstruct" to differentiate the different data types.
    – user76519
    Commented Jan 3, 2013 at 20:57

According to Wikipedia the Blittable types are originated from:

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.

In the Microsoft .NET framework, data is often represented in memory differently in managed and unmanaged code However, blittable types are defined as having an identical presentation in memory for both environments, and can be directly shared. So, this concept of blittable and non-blittable data types applies to specifically to the problem of data conversion between managed and unmanaged memory.


World Engineer's answer is quite fine, and gives a good historical perspective. To actually answer the question you asked though:

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

Yes. In C# such types are properly called unmanaged types. Section 18.2 of the specification recursively defines an "unmanaged type" as:

  • sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool.
  • Any enum type.
  • Any pointer type.
  • Any user-defined struct type that contains fields of unmanaged types only.
  • 2
    FWIW, I first came across "Blittable" in the Microsoft interop marshaling documentation. In that context unmanaged does not imply "blittable" for all types. That nuance caused me some consternation and led to this Q&A.
    – alx9r
    Commented Feb 1, 2021 at 18:34

Rarely, you may use the term memory mapped. That sometimes refers to structures that have been mapped to a specific memory address (either because it has been bitblted there, using DMA, or so that it can be bitblted out) but it has also been used to refer to data that has been mapped to a fixed structure so that internal structures can be shared.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.