J

#### John Taylor

I learned there are object types (describe objects) and function types

(describe functions). Truly there are also incomplete types, but I can't

understood what they really are. I read void is an incomplete type. The

(C99) standard says incomplete types describes objects, too, but "lack

information needed to determine their sizes". How can you have an object

without knowing its size? If you have an object, you know its size, just

by counting the bits required by any of its values. You can answer: "The

void type comprises an empty set of values": if you have no values, you

cannot count the number of bits required by any value. The point is that

in my understanding void should not describe objects at all. An object

can have a size of zero if the only value it can assume is the empty

string of bits. But there still is a value in this case. Mathematically,

the void type seems to be different from the {{}} set. It seems to be

the empty set ({}). Also, can you name some other incomplete type

different from void, please?

Thanks.