我正在阅读 System V Application Binary Interface,但有一部分我无法理解。
首先,该文档声明:
“没有尝试为C语言以外的语言指定ABI”(第10页)。
随后,在第20页上,数组被分类为MEMORY、POINTER等:
“聚合类型(结构和数组)和联合类型的分类如下:...”
然后使用这些分类来定义调用约定——传递值及其边界以及从函数返回。如果我正确理解算法,数组可以被分类为INTEGER、MEMORY或SSE。
但在C语言中,数组始终作为指针传递和返回。那么为什么对数组进行分类很有用?在哪种情况下,数组类别会起作用?
首先,该文档声明:
“没有尝试为C语言以外的语言指定ABI”(第10页)。
随后,在第20页上,数组被分类为MEMORY、POINTER等:
“聚合类型(结构和数组)和联合类型的分类如下:...”
然后使用这些分类来定义调用约定——传递值及其边界以及从函数返回。如果我正确理解算法,数组可以被分类为INTEGER、MEMORY或SSE。
但在C语言中,数组始终作为指针传递和返回。那么为什么对数组进行分类很有用?在哪种情况下,数组类别会起作用?