PyAPI_FUNC () - это макрос, определенный в pyport.h.Конкретное определение зависит от платформы, на которой вы строите, но вот пример:
#define PyAPI_FUNC(RTYPE) __declspec(dllimport) RTYPE
Итак, строка в вашем вопросе PyAPI_FUNC(int) PyToken_OneChar(int);
расширяется до:
__declspec(dllimport) int PyToken_OneChar(int);
В основном, он просто объявляет имя PyToken_OneChar
как функцию, которая принимает int
в качестве своего параметра и возвращает int
, но делает это так, чтобы компилятор встраивал информацию хранения в эти типы.См. Что такое __declspec и когда мне нужно его использовать? для получения дополнительной информации о директиве __declspec
, если вы заинтересованы.Другое определение для PyAPI_FUNC
таково:
#define PyAPI_FUNC(RTYPE) RTYPE
, которое пропускает все это и просто расширяет строку выше до:
int PyToken_OneChar(int);
Так что главное, что нужно убрать, этотот исходный код, который предназначен для компиляции на нескольких платформах, часто использует макросы, облегчающие написание кода один раз и использование его на каждой из этих платформ.В этом случае он позволяет программистам писать объявления для PyToken_OneChar()
и многих других функций один раз вместо того, чтобы писать (и поддерживать!) Разные версии для каждой платформы.Это довольно продвинутый материал - вам не о чем беспокоиться, если вы только начинаете.