Не удается инициализировать статическую структуру указателем на функцию из другой единицы перевода?

В документации 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? Какие компиляторы конкретно не могут справиться с вышеуказанным?

5
задан Josh Haberman 8 August 2011 в 21:58
поделиться