编译器在程序执行时只能一次执行一个申明么?编译器在程序执行时只能

run-time)和运行原理 (CPU-specific binary or pseudo-code

  为了解决用户可能碰到关于"编译器在程序执行时只能一次执行一个申明么?编译器在程序执行时只能"相关的问题,酷网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"编译器在程序执行时只能一次执行一个申明么?编译器在程序执行时只能"相关的详细问题如下:编译器在程序执行时只能一次执行一个申明么

若要在 Mac 的终端中编译并运行 C 源代码,你首先需要安装 Command Line Tools

扩展阅读,根据您访问的内容系统为您准备了以下扩展内容,希望对您有帮助。

Java代码的编译期绑定和运行期绑定是什么意思

编译时类型和运行时类型:

Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。

引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法,因此,编写Java代码时,引用变量只能调用声明该变量所用类里包含的方法。与方法不同的是,对象的属性则不具备多态性。通过引用变量来访问其包含的实例属性时,系统总是试图访问它编译时类所定义的属性,而不是它运行时所定义的属性。

前期绑定和后期绑定(动态绑定、运行时绑定):

绑定:将一个方法调用同方法主体关联起来叫做绑定

前期绑定:在程序执行之前进行绑定(如果有的话,由编译器和连接器完成),前期绑定是面向过程程序设计语言中默认的绑定方式,例如,C语言只有一种方法调用,那就是前期绑定。

后期绑定:就是在程序运行时根据对象的类型进行绑定,也叫作动态绑定或运行时绑定。

注意:Java中除了static和final方法(private方法属于final方法,因为类中的private方法被隐式指定为final方法,由此我们也可以知道:将方法声明为final类型的一是为了防止方法被覆盖,二是为了有效的关闭java中的动态绑定)之外,其他方法都是后期绑定。这意味着通常不必判定是否该进行后期绑定,因为它是自动发生的。

程序绑定的概念:

绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.

静态绑定:

在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。例如:C。

针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static,private和构造方法是前期绑定

动态绑定:

后期绑定:在运行时根据具体对象的类型进行绑定。

若一种语言实现了后期绑定,同时必须提供一些机制,可在运行期间判断对象的类型,并分别调用适当的方法。也就是说,编译器此时依然不知道对象的类型,但方法调用机制能自己去调查,找到正确的方法主体。不同的语言对后期绑定的实现方法是有所区别的。但我们至少可以这样认为:它们都要在对象中安插某些特殊类型的信息。

程序是通过编译器编译才能执行的,那么编译器又是怎么

一般来说,程序语言的编译有两个变量,一个是语言本身的语法体系,另外一个是目标机器的指令集体系结构。

对于前者,我们要发明一个新的编程语言的时候,一般是用已有的编程语言写新语言的编译器;

对于后者,要进行交叉编译,即在A指令集的计算机上编译B指令集计算机要用到的二进制程序。

本质上是一个鸡生蛋蛋生鸡的问题。

然而还是会绕到最终的问题:最最开始的第一只鸡(蛋(编译器))哪里来的?

当然是拿汇编语言写的啦~

那第一个汇编语言的汇编器是怎么写的?当然是直接手写二进制代码啊。。。

如何把在编译器里面编译成功的程序不借助编译器在PC上执行?

编译了之后,在你的工程文件夹里面有一个Debug或者Release文件夹,里面就能找到你的程序编译链接出来的exe文件,运行他就不需要借助编译器了 追问: (先说一下,我是C语言编写的)嗯,说的对,的确是这样,可是我发现了一个问题。我在编译器里面执行时,程序窗口能停在那里,可是在DEBUG里面找到EXE之后执行时那个黑色的窗口重视一闪而过,您有没有办法让它像编译器里面执行时那样让那个窗口停住,万分感激。 回答: 你可以在你的程序结尾处加上getchar();这样就可以让程序结束之后不是立即关闭窗口。另外,命令行界面的程序一般是假设你的dos窗口中执行的,也就是像其他dos命令一下,执行完之后就会自动退出的,如果你在dos窗口中找到你的程序并执行,那么程序执行完之后就回到命令行提示符,这正是我们需要的结果。当然,正如前面我所说的,如果你确实需要等待用户按键之后再结束,那么就加上一个getchar()

相关阅读推荐:

精彩图文

猜你还喜欢

电脑数码美食烹饪健康养生时尚美容情感家庭游戏攻略职场理财生活技巧体育运动 游戏/数码写作指南 办事指南 生活/家居1 健康/养生 职场/理财 爱好/休闲 时尚/美容 美食/营养 教育/学习 家庭/情感 全部科学节气电脑网络体育运动医疗健康游戏社会民生文化艺术电子数码娱乐休闲商业理财教育科学生活烦恼资源共享其它 A B C D12002000400060008000E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 A1

热门推荐