В документации Python утверждается, что следующее не работает на «некоторых платформах или компиляторах»:
int foo(int); // Defined in another translation unit.
struct X { int (*fptr)(int); } x = {&foo};
В частности, в документации Python говорится:
Мы хотели бы просто назначить это на слот tp_new, но мы не можем, поскольку ради переносимости. На некоторых платформах или компиляторах мы не можем статически инициализировать член структуры функцией, определенной в другом C module, поэтому вместо этого мы назначим слот tp_new в модуле функция инициализации непосредственно перед вызовом PyType_Ready (). - http://docs.python.org/exnding/newtypes.html
Является ли указанный выше стандартным C89 и / или C99? Какие компиляторы конкретно не могут справиться с вышеуказанным?