徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

调用约定

指数 调用约定

在计算机科学中, 调用约定是一种定义子过程从调用处接受参数以及返回结果的方法的约定。不同调用约定的区别在于:.

10 关系: 名字修饰寄存器应用二进制接口应用程序接口綁紮计算机科学调用栈LinuxMicrosoft WindowsX86调用约定

名字修饰

名字修饰,又译作名字粉碎、名字重整,译自英文name mangling或name decoration,是现代计算机程序设计语言的编译器用于解决由于程序实体的名字必须唯一而导致的问题的一种技术。 它提供了在函数、结构体、类或其它的数据类型的名字中编码附加信息一种方法,用于从编译器中向链接器传递更多语义信息。 该需求产生于程序设计语言允许不同的条目使用相同的标识符,包括它们占据不同的命名空间(典型的命名空间是由一个模块、一个类或显式的namespace指示来定义的)或者有不同的签名(例如函数重载)。 任何由编译器产生的目标代码通常与另一部分的目标代码(产生于同一款或不同款的编译器)通过链接器把它们链接起来。链接器需要一大堆每个程序实体信息。例如正确链接一个函数需要它的名字、参数个数和它们的类型,等等。.

新!!: 调用约定和名字修饰 · 查看更多 »

寄存器

寄存器(Register),是中央處理器內的其中組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器。 在電腦架構裡,處理器中的暫存器是少量且速度快的電腦記憶體,藉由提供快速共同地存取數值來加速電腦程式的執行:典型地說就是在已知時間點所作的之計算中間的數值。 暫存器是記憶體階層中的最頂端,也是系統操作資料的最快速途徑。暫存器通常都是以他們可以保存的位元數量來估量,舉例來說,一個8位元暫存器或32位元暫存器。暫存器現在都以暫存器陣列的方式來實作,但是他們也可能使用單獨的正反器、高速的核心記憶體、薄膜記憶體以及在數種機器上的其他方式來實作出來。 這個名詞通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為「架構暫存器」。例如,x86指令集定義八個32位元暫存器的集合,但一個實作x86指令集的CPU可以包含比八個更多的暫存器。.

新!!: 调用约定和寄存器 · 查看更多 »

应用二进制接口

在軟體開發中,應用程式機器二元碼界面(application binary interface,縮寫為 ABI)是指兩程式模組間的界面;通常其中一個程式模組會是函式庫或作業系統所提供的服務,而另一邊的模組則是使用者所執行的程式。一個ABI定義了機器碼如何存取資料結構與運算程序,此處所定義的界面相當低階並且相依於硬體。而類似概念的''API''則在原始碼定義這些,則較為高階,並不直接相依於硬體,通常會是人類可閱讀的程式碼。一個ABI常見的樣貌即是調用約定(calling convention):資料怎麼成為計算程序的輸入或者從中得到輸出;x86的調用約定(X86调用约定)即是一個ABI的例子。決定要不要採取既定的ABI(不論是否由官方提供),通常由編譯器,作業系統或函式庫的開發者來決定;然而,如果撰寫一個混和多個程式語言的應用程式,就必須直接處理ABI,採用外部函式呼叫(Foreign function interface)來達成此目的。.

新!!: 调用约定和应用二进制接口 · 查看更多 »

应用程序接口

应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由於近年來软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。.

新!!: 调用约定和应用程序接口 · 查看更多 »

綁紮

在電腦科學中,所謂的綁紮(Binding)是指創造一個簡單的參考(reference),並將它指向一個更複雜更大的結構以利後用。 此簡單參考可以替代此巨大結構,在之後的程式中輕盈地使用。.

新!!: 调用约定和綁紮 · 查看更多 »

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

新!!: 调用约定和计算机科学 · 查看更多 »

调用栈

#重定向 呼叫堆疊.

新!!: 调用约定和调用栈 · 查看更多 »

Linux

Linux( )是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。,在加上使用者空間的應用程式之後,成為Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發行版,而不是自己選擇每一樣組件或自行設置。 Linux嚴格來說是單指作業系統的内核,因作業系統中包含了許多用戶圖形介面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,內核則改以Linux内核稱之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不屬於GNU計劃,這個名稱並沒有得到社群的一致認同。 Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上。 通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。.

新!!: 调用约定和Linux · 查看更多 »

Microsoft Windows

Microsoft Windows(中文有时譯作微軟--,通常不做翻译)是微軟公司推出的一系列操作系统。它問世於1985年,起初是MS-DOS之下的桌面環境,其後續版本逐漸發展成為主要为個人電腦和服务器用户設計的操作系統,并最终获得了世界个人电脑操作系統的垄断地位。此操作系統可以在几种不同类型的平台上运行,如个人电脑(PC)、移动裝置、服务器(Server)和嵌入式系統等等,其中在个人电脑的领域应用内最为普遍。在2004年國際數據資訊公司一次有关未来发展趋势的会议上,副董事长Avneesh Saxena宣布Windows拥有终端操作系统大约70%的市场份额 www.linuxworld.com.au。 Windows操作系統目前最新的穩定版是於2015年7月29日發佈的 Windows 10。Windows Server目前最新的穩定版是2016年9月26日發佈的Windows Server 2016。.

新!!: 调用约定和Microsoft Windows · 查看更多 »

X86调用约定

这里描述了在x86芯片架构上的调用约定(calling conventions)。 调用约定描述了被调用代码的接口:.

新!!: 调用约定和X86调用约定 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »