Shared publicly  - 
the meaning!
Nick Alcock's profile photoXah Lee's profile photo
C has objects too, pretty much denoting 'a thing in memory which can have a value, or whose components can have values'. (Thus, a bitfield is an object, even though you can't take the address of it; a string constant is an object even though you can't modify it, and even though it's an array; a function is not an object, even though you can take its address.)

This is a rather ad-hoc definition mostly used to declare in the standard that certain things can be done to objects that cannot be done to anything else (such as freely casting pointers to them to void *, which you can do to an array, but not to a function pointer, since that's not an object).

However, note that this terminology postdates OOP: nobody was talking about 'objects' when C was young. So this, like 'const', is actually terminological leakage back from OOP languages (mostly C++, which was already several years old when the C standardization effort began) into C.
Add a comment...