C的日记-编译和执行

1、#include <stdio.h>
---------------------------------------------------------------------------------

可以这么理解,标准输入输出函数同样是人们定义的,保存在标准函数库中的一些函数,
当我们使用这些已经定义过了的函数时,(编译系统)要求我们在完成编译前,对这些函数进行一种导入
编译系统是把源程序.c文件翻译成二进制的目标程序.obj文件,然后再把中间文件和库函数中的其他一些文件连接,执行,这才形成可以执行的文件.exe
在编译的时候,仅仅是语法让我们必须使用已被定义过的函数,当语法通过,就把当前的源程序(包括导入的函数名)翻译成二进制文件,通过函数名查找到对应的库函数(可能也是二进制文件)然后进行执行。

什么又是执行?计算机内部只能执行二进制文件,执行系统更像是一种把源程序的二进制文件和库函数的二进制文件翻译成计算机可以运行的.exe文件的系统,这个执行系统因为调用了库函数的二进制文件,所以可以接受用户输入和打印等操作,我们进行操作的时候,传递了二进制数据进去,与连接过类库的二进制文件比较,如果当前用户的操作需要二进制源码进行处理,就对我们传进去的二进制操作进行二进制源码处理,处理之后就依然以二进制的形式反馈到用户界面等地方,我们在做的就是

---------------------------------------------------------------------------------
编辑源码->编译系统检测通过->连接库函数,本质上就是对数据进行操作的司令部->执行,调用库函数或者自身的方法把二进制码转换成如用户界面上可执行的exe文件->如果我们输入数据或者进行操作的时候,exe文件把我们的操作转换成二进制在操作,这个操作如果被司令部函数收到了->司令部进行操作,然后继续调用库或自身函数,把二进制文件显示成用户可看到的文件。
---------------------------------------------------------------------------------
为什么linux不支持exe文件直接打开?
首先:什么是操作系统?
操作系统是管理和控制硬件和软件资源的最基本的用户软件,位于硬件和应用软件之间,同时提供硬件和软件的接口。二进制码之所以能转换成exe文件就是操作系统的功劳,
操作系统提供了一系列的软件接口,我们通过实现重写调用这些软件接口或方法进行软件开发,当然我们用一款操作系统提供的接口制作的软件是无法在另一个平台上运行的,因为它们使用的类库和接口都不同。
操作系统把我们的软件先进行了编译,编译成功之后和操作系统中提供的类库连接形成二进制码,在运行的时候调用库函数/自身方法把二进制码转换为该操作系统上的可执行文件。大家操作系统不同,软件就无所谓兼容问题了。。真的么?
备注:软件(计算机语言编写)-》操作系统编译-》二进制码+类库-》操作系统运行-》用户界面+功能。这么来说C编程软件中的编译器和执行器岂不是一个小型操作系统?
----------------------------------------------------------------------------------
java的跨平台是怎么回事
java的编译器都相同,不同操作系统上的执行器不同,编译出来的二进制码都能用,但要在不同操作系统上运行还需要不同的解释器,分别调用各自的类库。
----------------------------------------------------------------------------------
附上:
 C语言32个关键字
  关键字就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等
  由ANSI标准定义的C语言关键字共32个:
  auto double int struct break else long switch
  case enum register typedef char extern return union
    const float short unsigned continue for signed void
  default goto sizeof volatile do if while static
  根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。

时间: 2024-10-11 20:21:39

C的日记-编译和执行的相关文章

编译型和解释型的区别&amp;&amp;Java从编译到执行的过程

借鉴: 1  http://www.cnblogs.com/bluestorm/archive/2012/12/09/2810167.html           区别 2  http://blog.jobbole.com/53152/       编译的过程 3  http://jingyan.baidu.com/article/b24f6c82de6bcf86bfe5dad4.html          Java从编译到执行的过程(完整) Java编译-下载-解释-执行的过程: 在Java编

Java代码编译和执行的整个过程

Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成class文件 流程图如下所示: 最后生成的class文件由以下部分组成: 结构信息.包括class文件格式版本号及各部分的数量与大小的信息 元数据.对应于Ja

JAVA编译和执行过程

Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成class文件 流程图如下所示: 最后生成的class文件由以下部分组成: 结构信息.包括class文件格式版本号及各部分的数量与大小的信息 元数据.对应于Ja

C语言是怎么编译到执行Hello world的。

1.首先在编译器上写出你的Hello world程序,比如我在linux平台用GCC编译器进行编译,此时程序名称应该是以.c为后缀的文件名. 2.编译第一步,启动cpp预处理器,进行预处理操作,展开头文件替换,加载头文件等等.编译完成之后生成一个.i为后缀的文件 此时使用命令:gcc -E hello.c -o hello.i 如果有兴趣可以打开hello.i文件查看里面的内容. 3.第三步,该启动gcc/cc编译器了,该编译器可将预处理后后的.i文件编译成平台汇编,根据平台的差异编译成不同的汇

Android源码和内核源码的下载,编译和执行

笔者依据罗升阳老师的<Android 系统源码情景分析>一书,尝试下载,编译和执行Android源码和内核源码.但可能是软件源"被墙"或版本号更新的原因.期间遇到诸多问题.笔者求助于强大的度娘和谷歌.最终编译成功,现将改动的步骤记录例如以下: 一.下载相关的工具包和依赖包 1.git工具的下载.不多说 2.Java SDK的下载(參考网址:http://blog.csdn.net/zjclugger/article/details/11762085) 此处建议下载jdk1.

C语言文件的编译到执行的四个阶段

C语言文件的编译与执行的四个阶段并分别描述 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接.编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程.链接是把目标文件.操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程. 第一个阶段: 是预处理阶段,在正式的编译阶段之前进行.预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容.如#include指令就是一个预处理指令,它把头文件的内容添加到.cpp

Java源程序的编译及执行问题

在写Java程序时,遇到了编译不通过的问题: 错误提示显示GBK,可能是字符集的问题导致的: 为java命令指定了一个选项 -encoding utf-8,才编译成功^_^ 不过在使用javac命令执行时,又遇到了问题,导致执行失败: package lee; /**  *Description:  *<br>网站:<a href="http://www.123.org">123</a>  *<br>Copyright (C), 2001

【Java编程】Java在dos窗口编译与执行的批处理

最近在Java编程过程中,常用到dos窗口对程序进行编译与运行.但是不方便之处在于每次都要输入命令进入将要编译的程序的目录(其实也有简单的方法,在文章末尾给出).于是编写了一个配置文件,可以一次修改,经常使用.(只需要在下面程序中将路径修改为你所经常存放程序的目录).前提当然是你已正确配置环境变量.具体方法为:将下面的程序放在新建的文本文件中,并将后缀名改为.bat.然后双击该文件,按提示操作即可!程序源码如下:(红色字体是需要根据你的存放路径修改的) echo off cls title Ja

C#程序的编译和执行

1.在讲解 C# 程序的编译与执行之前,首先了解以下两个概念,以便充分理解C# 程序的运行. CLI--Common Language Infrastructure 的简称,C# 程序在Microsoft .NET Framework 上运行时, 它是 Windows 的一个必要组件,包括一个称为公共语言运行库(CLR,在第1章中对该内容有过详细讲解)的虚拟执行系统和一组统一的类库. IL--Intermediate Language 的简称,称为中间语言,又称为 MSIL.所有Microsof