Scalar vs Complete Types

Since we have those two different concept Scalar Types and Complete Types, I want to know the difference between them. Is it about void*?

In the TinyC Type system, every Object Type but void (in essence our Scalar Types) is complete. Therefore void* is a complete type.

(From the project specification)

Notably, void* is a pointer type and hence complete

1 Like

So void* is also an ScalarType, isn’t it?

What’s the point of having scalar and complete if they are identical?

The point is that you learn C, where these types are different. For example, struct types are complete (have a sizeof) but not scalar (have a zero value).

In TinyC, this degenerates so all scalar types are complete and vice-versa.