При рассмотрении, является ли функция реентерабельной или нет, пример должен быть немного менее тривиальным, чем этот.
pDNM DNMManager_New(void) //reentrant?
{
return &DNMTemp;
}
Но ссылка на DNMTemp
(его адрес) останется неизменной во время выполнения программы, поэтому эта функция реентерабельна.
Но если вы получите доступ к любым реальным данным, это не так.
uint32_t DNMManager_read(void) //reentrant?
{
return SerialNum;
}