10.01.21 09:53, junyixie пише:
> #ifndef Py_LIMITED_API
> #  define Py_CPYTHON_FILEOBJECT_H
> #  include  "cpython/fileobject.h"
> #  undef Py_CPYTHON_FILEOBJECT_H
> #endif
> 
> cpython/fileobject.h
> ```
> #ifndef Py_CPYTHON_FILEOBJECT_H
> #  error "this header file must not be included directly"
> #endif
> ```
> 
> why not use  #ifndef #define 
> cpython/fileobject.h
> #ifndef Py_CPYTHON_FILEOBJECT_H
> #define Py_CPYTHON_FILEOBJECT_H
> ....
> #endif /* Py_CPYTHON_FILEOBJECT_H */

Because it will not produce compile-time error when you include that
header files directly.

The division of these declarations on few files is a deep implementation
detail. Header file "cpython/fileobject.h" is not a part of API and we
do not want users to use them directly and then fail because in next
feature (or even bugfix) release some declarations have been moved to
other files.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/UCKJUHCR4JLSPJKKQBKSUSRTNDBNARVI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to