Delphi在编译pas文件时所起的函数名称的作用是什么。
例如以下代码
unit Hellopas;
interface
function HelloFromPas():Integer; stdcall;
将推出此函数名称@Hellopas @ HelloFromPas $ qqsv
那么Delphi的角色是什么?
答案 0 :(得分:2)
这是一个装饰或受损的名称。该名称对函数及其参数的完整范围进行编码。包含单位名称,因为它是完全限定名称的一部分。参数,返回值和调用约定也被编码,此处为qqsv
。
Wikipedia解释了像这样修剪的必要性:
在编译器构造中,名称修改(也称为名称修饰) 是一种用于解决由需要引起的各种问题的技术 为许多现代的编程实体解析唯一的名称 编程语言。
它提供了一种以a的名称编码附加信息的方法 函数,结构,类或其他数据类型,以传递更多 从编译器到连接器的语义信息。
需要语言允许不同的实体 只要它们占用不同的名称,就用相同的标识符命名 namespace(命名空间通常由模块,类定义, 或显式命名空间指令)或具有不同的签名(例如 函数重载)。
编译器生成的任何目标代码通常都与其他代码链接 由一个目标代码(由相同或另一个编译器生成) 称为链接器的程序类型。链接器需要很多 每个计划实体的信息。例如,要正确链接一个 函数它需要它的名字,参数的数量和它们的类型, 等等。