В интервью C мне задали очень интересный вопрос: как вы можете реализовать функцию f() таким образом, чтобы ее можно было вызывать только из определенной функции g(). Если функция, отличная от g(), пытается вызвать f(), это приведет к ошибке компилятора.
Сначала, хотя это можно было бы сделать с указателями функций, и я мог бы приблизиться к блокировке вызова во время выполнения. Но я не мог думать о стратегии времени компиляции. Я даже не знаю, возможно ли это с помощью ansi C.
Есть ли у кого-нибудь идеи?