我一直在研究numpy的源代码,发现很多c源代码使用了@变量名称@
这种结构。例如,在文件 "npy_math_complex.c.src" (位于这里):
/*==========================================================
* Constants
*=========================================================*/
static const @ctype@ c_1@c@ = {1.0@C@, 0.0};
static const @ctype@ c_half@c@ = {0.5@C@, 0.0};
static const @ctype@ c_i@c@ = {0.0, 1.0@C@};
static const @ctype@ c_ihalf@c@ = {0.0, 0.5@C@};
@ctype@
和@c@
是什么意思?它们是一些宏吗?我猜它们不是普通的C宏,因为我查看了文件中列出的相关头文件,发现它们并没有使用“@”定义任何宏。
@name@
是distutils
在将C代码编译成Python模块时使用的某种宏吗?我以前从未见过C代码中使用
@
符号,所以有点困惑...
@
标记的部分被替换,但我从未弄清楚他们使用的模板系统或所生成代码的精确细节。 - user2357112npy_math_complex.c.src
是一个提示... - ad absurdum