重新认识代码

    做开发时间越来越长,知道的越多觉得不知道的更多。有时会去想,我们写的代码是怎么从oc,c,c++等等,这样的高级语言变成可执行文件的?编译,运行的过程中究竟发生了什么?
    带着这样的问题,我打算好好静下心来阅读一本书 —— 《程序员的自我修养——链接、装载与库》。
    自从从事iOS开发至今,其实绝大部分时间是做业务需求,少部分时间在思考代码结构和程序架构。而对于底层机制的探索知之甚少。
    有过 OC(或者别的编译语言)开发经验的开发者,必然会遇到过方法重复定义或者是变量重复定义的问题(duplicate symbols for architecture i386)。
    这种错误说的是编译器认为方法和变量被重复定义了,而导致这个错误的原因可能是因为import了一个.m文件,而非.h文件。(真的在一个类中定义了两个同名函数的情况不是没有,只是很容易被发现,而包含.m文件导致的报错,不容易发现)

那么,import了.m文件,为什么会使得编译器认为重复定义了函数和变量呢?而又为什么import .h文件是对的呢?这就需要了解编译器在编译、链接过程中做了些什么。也是我去看这本书的原因。
随着,看书和自己编程时间的慢慢增长,我越来越觉得,所有的编程,链接,运行,等等计算机中出现的这些专有术语,其实和生活中的种种事物和其运行是一样的。只不过用在了计算机上,给了他一个专门的称谓,本质上其实是逻辑思维。为了做一件事儿,我需要某某某条件,有了条件,我还需要组织,有了组织我要知道改如何组织,等等。凡此种种,其实都是基于逻辑思维 和 逻辑完备而生的。
我希望能从底层了解代码,从本源了解世界。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员...
    李剑飞的简书阅读 7,511评论 2 65
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,173评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,230评论 18 399
  • 一个人,不敢和真正喜欢的人在一起,那么等老了,注定会后悔到死不瞑目。 忽然就想起几年前看过的一个故事。一对表兄妹相...
    温柔的四爷阅读 211评论 0 0
  • 最近走在学习的道路上,越来越开心和放松了。自己在想,究竟是什么改变了呢? 可能因为放下了很多人,很多事,以前的自己...
    AnnaFan阅读 273评论 0 0

友情链接更多精彩内容