E34 Answer


No, the compiler will complain that the identifiers height and width in the source file mainRect.c cannot be found.

The variables height and width have internal linkage and file scope for the file rect.c. main() cannot see them.


/* --- rect.h --- */ void setWidth( int w ); void setHeight( int h ); int getArea();
/* --- rect.c --- */ static int width = 0; static int height = 0; void setWidth( int w ) { width = w; } void setHeight( int h ) { height = h; } int getArea() { return height*width; }
/* --- mainRect.c --- */ #include "rect.h" int main() { height = 4; width = 3; printf("Area: %d\n", getArea() ); system("pause"); }

This is like trying to access the private instance variables of an object.