In programming, type checking is a way of ensuring that a variable or expression has a valid type. Type checking can be performed in a variety of ways, including static type checking, dynamic type checking, and type inference.
In C programming, there are two main ways to check the type of an object: the `typeof` operator and the `typeid` operator. The `typeof` operator returns a string that represents the type of the object, while the `typeid` operator returns a `std::type_info` object that represents the type of the object.