title: How to implement a "private/restricted" function in C?
body: <p>I was asked a very interesting question during a C interview: How can you implement a function f() in such a way that it can only be called from a particular g() function. If a function other than g() tries to call f() it would result in a compiler error.</p>
  
  <p>At first, I though this could be done with function pointers and I could get close to blocking the call at runtime. But I was not able to think of a compile time strategy. I don't even know if this is possible using ansi C.</p>
  
  <p>Does anyone have any idea?</p>