zoukankan      html  css  js  c++  java
  • "Hello World " —— 深入理解程序从编译到执行

    对于C语言编写的Hello World程序(例如以下)。对于程序猿来说肯定如雷贯耳,就是这样一个简单的程序,你真的了解她吗?

    #include <stdio.h>
    int main()
    {
        printf("Hello World
    ")
        return 0;
    }

    对于以下这些问题,你脑子里可以立即反映出一个清晰、明显的答案吗?

    1. 程序为什么要被编译器编译之后才干够执行?
    2. 编译器在把C语言程序转换成能够执行的机器码的过程中做了什么?怎么做的?
    3. 最后编译出来的可执行文件中面是什么?除了机器码还有什么?他们怎么存放的?怎么组织的?
    4. #include <stdio.h>是什么意思?把stdio.h包括进来意味着什么?C语言库又是什么?它怎么实现的?
    5. 不同的编译器(Microsoft VC、GCC)和不同的硬件平台(x86、SPARC、MIPS、ARM),以及不同的操作系统(Windows、Linux、UNIX、Solaris),终于编译出来的结果一样吗?为什么?
    6. Hello World程序是怎么执行起来的?操作系统是怎么装载它的?他从哪里開始执行?到哪儿结束?main函数之前发生了什么?main函数结束之后又发生了什么?
    7. 假设没有操作系统,Hello World能够执行吗?假设要在一台没有操作系统的机器上执行Hello World须要什么?应该怎么实现?
    8. printf是怎么实现的?他为什么能够有不定数量的參数?为什么它能够在终端上输出字符串?
    9. Hello World程序在执行时。它在内存中是什么样子的?

  • 相关阅读:
    最全的常用正则表达式大全--包括校验数字、字符、一些特殊的需求等【转】
    【转】浏览器“后退”、“前进”或可以这么去监听
    vue单页面title修改
    Vue.js中ref ($refs)用法举例总结
    js 程序执行与顺序实现详解
    $(document).ready和window.onload的区别 【转】
    linq to xml(C#)
    TCP/IP|| 建立连接或终止
    TCP/IP TCP
    TCP/IP DNS
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6941136.html
Copyright © 2011-2022 走看看