C++ Static function is the function that is independent of an object of the class. And called by class name and scope resolution :: operator without creating any object.
However, there is no harm calling static functions using object, but that is redundant and may be confusing to developers in a large project as it gives impression that it is non static function in client code and considered a bad practice.
Also, static function doesn’t understand ‘this’ pointer as it is independent of objects.
C++ code example
static void func1()//static function
//this->a =2; //Error: static member functions do not have 'this' pointer
void func2()//non static function
this->a =2; //OK
A::func1(); //static function call
ob.func1(); //static function can be called using object, but no ‘this’ pointer is passed to it internally.
No, C++ static function is not same as in C. Static function in C is used for local linkage.