In this struct, it is a field identified by the blank identifier with a type size of 0 (the size of an empty struct type). Because the field is the blank identifier, it cannot be accessed directly; it only serves as a placeholder. A consequence of this is, as the comment states, unkeyed literals of ProgInfo cannot be constructued e.g. ProgInfo{1, 2, 3, 4} must be ProgInfo{Flags: 1, Reguse: 2, Regset: 3, Regindex: 4} or the compiler will complain that there is a missing field in the struct literal. I'd imagine this is done to avoid bugs that might arise from specifying the arguments in an incorrect order.