Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /usr/include/python3.6m/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/include/python3.6m/pymacro.h
#ifndef Py_PYMACRO_H
#define Py_PYMACRO_H

/* Minimum value between x and y */
#define Py_MIN(x, y) (((x) > (y)) ? (y) : (x))

/* Maximum value between x and y */
#define Py_MAX(x, y) (((x) > (y)) ? (x) : (y))

/* Absolute value of the number x */
#define Py_ABS(x) ((x) < 0 ? -(x) : (x))

#define _Py_XSTRINGIFY(x) #x

/* Convert the argument to a string. For example, Py_STRINGIFY(123) is replaced
   with "123" by the preprocessor. Defines are also replaced by their value.
   For example Py_STRINGIFY(__LINE__) is replaced by the line number, not
   by "__LINE__". */
#define Py_STRINGIFY(x) _Py_XSTRINGIFY(x)

/* Get the size of a structure member in bytes */
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)

/* Argument must be a char or an int in [-128, 127] or [0, 255]. */
#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff))

/* Assert a build-time dependency, as an expression.

   Your compile will fail if the condition isn't true, or can't be evaluated
   by the compiler. This can be used in an expression: its value is 0.

   Example:

   #define foo_to_char(foo)  \
       ((char *)(foo)        \
        + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))

   Written by Rusty Russell, public domain, http://ccodearchive.net/ */
#define Py_BUILD_ASSERT_EXPR(cond) \
    (sizeof(char [1 - 2*!(cond)]) - 1)

#define Py_BUILD_ASSERT(cond)  do {         \
        (void)Py_BUILD_ASSERT_EXPR(cond);   \
    } while(0)

/* Get the number of elements in a visible array

   This does not work on pointers, or arrays declared as [], or function
   parameters. With correct compiler support, such usage will cause a build
   error (see Py_BUILD_ASSERT_EXPR).

   Written by Rusty Russell, public domain, http://ccodearchive.net/

   Requires at GCC 3.1+ */
#if (defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
    (((__GNUC__ == 3) && (__GNU_MINOR__ >= 1)) || (__GNUC__ >= 4)))
/* Two gcc extensions.
   &a[0] degrades to a pointer: a different type from an array */
#define Py_ARRAY_LENGTH(array) \
    (sizeof(array) / sizeof((array)[0]) \
     + Py_BUILD_ASSERT_EXPR(!__builtin_types_compatible_p(typeof(array), \
                                                          typeof(&(array)[0]))))
#else
#define Py_ARRAY_LENGTH(array) \
    (sizeof(array) / sizeof((array)[0]))
#endif


/* Define macros for inline documentation. */
#define PyDoc_VAR(name) static char name[]
#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str)
#ifdef WITH_DOC_STRINGS
#define PyDoc_STR(str) str
#else
#define PyDoc_STR(str) ""
#endif

/* Below "a" is a power of 2. */
/* Round down size "n" to be a multiple of "a". */
#define _Py_SIZE_ROUND_DOWN(n, a) ((size_t)(n) & ~(size_t)((a) - 1))
/* Round up size "n" to be a multiple of "a". */
#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \
        (size_t)((a) - 1)) & ~(size_t)((a) - 1))
/* Round pointer "p" down to the closest "a"-aligned address <= "p". */
#define _Py_ALIGN_DOWN(p, a) ((void *)((uintptr_t)(p) & ~(uintptr_t)((a) - 1)))
/* Round pointer "p" up to the closest "a"-aligned address >= "p". */
#define _Py_ALIGN_UP(p, a) ((void *)(((uintptr_t)(p) + \
        (uintptr_t)((a) - 1)) & ~(uintptr_t)((a) - 1)))
/* Check if pointer "p" is aligned to "a"-bytes boundary. */
#define _Py_IS_ALIGNED(p, a) (!((uintptr_t)(p) & (uintptr_t)((a) - 1)))

#ifdef __GNUC__
#define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
#else
#define Py_UNUSED(name) _unused_ ## name
#endif

#endif /* Py_PYMACRO_H */
Name
Size
Permissions
Options
Python-ast.h
21.752 KB
-rw-r--r--
Python.h
3.146 KB
-rw-r--r--
_hashopenssl.h
1.333 KB
-rw-r--r--
abstract.h
46.339 KB
-rw-r--r--
accu.h
0.992 KB
-rw-r--r--
asdl.h
1.185 KB
-rw-r--r--
ast.h
0.466 KB
-rw-r--r--
bitset.h
0.773 KB
-rw-r--r--
bltinmodule.h
0.258 KB
-rw-r--r--
boolobject.h
0.865 KB
-rw-r--r--
bytearrayobject.h
2.064 KB
-rw-r--r--
bytes_methods.h
3.116 KB
-rw-r--r--
bytesobject.h
8.167 KB
-rw-r--r--
cellobject.h
0.685 KB
-rw-r--r--
ceval.h
8.324 KB
-rw-r--r--
classobject.h
1.627 KB
-rw-r--r--
code.h
5.806 KB
-rw-r--r--
codecs.h
6.634 KB
-rw-r--r--
compile.h
2.113 KB
-rw-r--r--
complexobject.h
1.765 KB
-rw-r--r--
datetime.h
9.193 KB
-rw-r--r--
descrobject.h
2.895 KB
-rw-r--r--
dictobject.h
7.01 KB
-rw-r--r--
dtoa.h
0.447 KB
-rw-r--r--
dynamic_annotations.h
21.942 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.462 KB
-rw-r--r--
eval.h
0.583 KB
-rw-r--r--
fileobject.h
1.612 KB
-rw-r--r--
fileutils.h
3.441 KB
-rw-r--r--
floatobject.h
4.682 KB
-rw-r--r--
frameobject.h
3.447 KB
-rw-r--r--
funcobject.h
3.983 KB
-rw-r--r--
genobject.h
3.499 KB
-rw-r--r--
graminit.h
1.92 KB
-rw-r--r--
grammar.h
2.025 KB
-rw-r--r--
import.h
4.134 KB
-rw-r--r--
intrcheck.h
0.501 KB
-rw-r--r--
iterobject.h
0.554 KB
-rw-r--r--
listobject.h
2.832 KB
-rw-r--r--
longintrepr.h
3.673 KB
-rw-r--r--
longobject.h
9.6 KB
-rw-r--r--
marshal.h
0.784 KB
-rw-r--r--
memoryobject.h
2.7 KB
-rw-r--r--
metagrammar.h
0.247 KB
-rw-r--r--
methodobject.h
3.757 KB
-rw-r--r--
modsupport.h
7.146 KB
-rw-r--r--
moduleobject.h
2.231 KB
-rw-r--r--
namespaceobject.h
0.341 KB
-rw-r--r--
node.h
0.983 KB
-rw-r--r--
object.h
41.214 KB
-rw-r--r--
objimpl.h
13.91 KB
-rw-r--r--
odictobject.h
1.258 KB
-rw-r--r--
opcode.h
4.954 KB
-rw-r--r--
osdefs.h
0.675 KB
-rw-r--r--
osmodule.h
0.284 KB
-rw-r--r--
parsetok.h
2.817 KB
-rw-r--r--
patchlevel.h
1.102 KB
-rw-r--r--
pgen.h
0.247 KB
-rw-r--r--
pgenheaders.h
1.152 KB
-rw-r--r--
py_curses.h
4.206 KB
-rw-r--r--
pyarena.h
2.68 KB
-rw-r--r--
pyatomic.h
7.938 KB
-rw-r--r--
pycapsule.h
1.686 KB
-rw-r--r--
pyconfig-64.h
43.576 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pyctype.h
1.289 KB
-rw-r--r--
pydebug.h
1.234 KB
-rw-r--r--
pydtrace.h
1.924 KB
-rw-r--r--
pyerrors.h
16.815 KB
-rw-r--r--
pyexpat.h
2.393 KB
-rw-r--r--
pyfpe.h
8.272 KB
-rw-r--r--
pygetopt.h
0.4 KB
-rw-r--r--
pyhash.h
4.042 KB
-rw-r--r--
pylifecycle.h
3.982 KB
-rw-r--r--
pymacconfig.h
2.919 KB
-rw-r--r--
pymacro.h
3.418 KB
-rw-r--r--
pymath.h
8.117 KB
-rw-r--r--
pymem.h
8.356 KB
-rw-r--r--
pyport.h
26.927 KB
-rw-r--r--
pystate.h
10.885 KB
-rw-r--r--
pystrcmp.h
0.426 KB
-rw-r--r--
pystrhex.h
0.483 KB
-rw-r--r--
pystrtod.h
1.448 KB
-rw-r--r--
pythonrun.h
6.623 KB
-rw-r--r--
pythread.h
2.922 KB
-rw-r--r--
pytime.h
7.431 KB
-rw-r--r--
rangeobject.h
0.614 KB
-rw-r--r--
setobject.h
3.255 KB
-rw-r--r--
sliceobject.h
2.427 KB
-rw-r--r--
structmember.h
1.971 KB
-rw-r--r--
structseq.h
1.321 KB
-rw-r--r--
symtable.h
4.877 KB
-rw-r--r--
sysmodule.h
1.323 KB
-rw-r--r--
token.h
1.897 KB
-rw-r--r--
traceback.h
3.559 KB
-rw-r--r--
tupleobject.h
2.387 KB
-rw-r--r--
typeslots.h
2.2 KB
-rw-r--r--
ucnhash.h
1.031 KB
-rw-r--r--
unicodeobject.h
79.862 KB
-rw-r--r--
warnings.h
1.653 KB
-rw-r--r--
weakrefobject.h
2.799 KB
-rw-r--r--