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.
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.
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.
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.