读《程序员的自我修养》感受

这书不错,链接-装载-库 我觉得是很底层的东西。比如很多人闭着眼睛都能写出来的hello world(当然不包括brianfuck,如果你会,你真的闹残了吗= =), 其实链接编译器做了很多,不然就哪来的printf,这IO初始化也是CRT(c runtime)库完成的。堆栈的初始化,还有系统装载让程序运行等等。涉及很多。

书里后面就讲了一个CRT库,自己写一个,感觉不错,学了很多。比如malloc,free的实现,话说还是跨平台的。当然库很小,功能不多,不过写这个也可以学学算法。内存的分配,这个要用到链表。突然想起书里有许多诡异的代码,不可思议的东西。贴上几处(C语言的,python者移步吧)

1 #include <stdio.h>

2

3 namespace myname {

4     int var = 42;

5 }

6

7 extern "C" int  _ZN6myname3varE;

8

9 int main()

10 {

11     printf("%d\n", _ZN6myname3varE);

12     return 0;

13 }

好吧,这个是C和C++编译器对名称的处理。结果当然是42,为什么呢?因为42 the answer to the ultimate question of life the universe and everything 生命、宇宙以及任何事情的终极答案----来自电影 银河系漫游指南。

好像扯远了= =

1 #include <setjmp.h>

2 #include <stdio.h>

3

4 jmp_buf b;

5

6 void f()

7 {

8     longjmp(b, 1);

9 }

10

11 int main()

12 {

13     if(setjmp(b) )

14         printf("World!");

15     else {

16         printf("Hello ");

17         f();

18     }

19     return 0;

20 }

这个是C语言使时光逆流的= =

好吧,不吹了,就这么多吧。

读《程序员的自我修养》感受,布布扣,bubuko.com

时间: 2024-10-08 10:31:32

读《程序员的自我修养》感受的相关文章

读《程序员的自我修养 —— 装载与动态链接》乱摘

2016.05.14 – <程序员的自我修养 -- 链接.装载与库>的装载与动态链接部分. - 余甲子 石凡 潘爱民编 个人选读笔记 - 学点表皮. 05.14 PART II 装载与动态链接 1 可执行文件的装载与进程 1.1 进程虚拟地址空间的大小 每个进程拥有自己独立的虚拟地址空间,该虚拟地址空间的大小由计算机的硬件平台决定,具体地说是由CPU的位数决定的(地址线 -- C语言中的指针所占空间).硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,如32位的硬件平台决定了虚拟地址空间

一个程序员的自我修养

在网上看到一篇程序员的自我修养,深以为然,不禁摘录一些,勉励自己 一个好的开发人员,应该能够全面.高效.严谨的去处理任何软件程序和业务问题,成为一个好的开发,是一个很有意思的话题,不过无论这个话题如何开展,基础两个字必不可少,虽然代码量是衡量开发能力的重要指标,但仅能够熟练的进行代码编写是不够的,更要能深刻的理解技术原理和业务逻辑,扎实的个人基础和技术基础往往会促进代码的编写,更游刃有余的解决问题. 下面说的一些基础,可能绝大部分开发人员都不会在意甚至忽略,但恰恰这些才是开发大厦的基石. 1.科

很认真的聊一聊程序员的自我修养

首先要谈的是,今天的话题所聊的程序员包含哪些人? 在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具 大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员.在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量.对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些"自我修养",是最基础的,是普世的. 所以今天的话题面向的程序员,就是所有的正在写代码或者曾经写过代码的程序员,也包括广义上

很认真地聊一聊程序员的自我修养

最近看了<浅谈程序员的英语学习>,对于文章中的观点我非常认同,英语是非常重要的,但文章站的高度还是太高,具体表述的学习方法我不是很认同,也认为不太实际,恰好之前有一篇一直没有发表的文章想重新发布,就借此机会和大家很认真的谈一谈程序员的自我修养问题. 先介绍一下利益相关,我的背景: 初中开始参加信息学与数学竞赛,大学本科软件工程专业,毕业后在银行做大数据分析与项目管理,后自主创业,做过传媒公司.软件外包公司,现在中国(南京)软件谷有个工作室,做些自己喜欢的事情.15年编码经验,6年创业经验.主要

聊一聊程序员的自我修养

首先要谈的是,今天的话题所聊的程序员包含哪些人? 在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具 大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员.在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量.对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些"自我修养",是最基础的,是普世的. 所以今天的话题面向的程序员,就是所有的正在写代码或者曾经写过代码的程序员,也包括广义上

谈程序员的自我修养

最近,无意中看到一本书,叫作<程序员的自我修养>,书名很吸引我,翻开看时,却发现里面的内容多是有关Windows底层技术的介绍,比如编译器.链接库的原理,运行库的实现等等.可能是自己不常做Windows编程的缘故,便觉得索然,不愿再往下读了.反而是这书名倒让我起了些意见,明明应该叫作"深入Windows开发核心"之类,却被冠以"程序员自我修养"的名字,确有些言过其实了吧. 我也曾写过些文章,多是教程序员们如何摆弄新鲜技术,或是谈些有关职业与个人发展的话题

也谈程序员的自我修养

最近,无意中看到一本书,叫作<程序员的自我修养>,书名很吸引我,翻开看时,却发现里面的内容多是有关Windows底层技术的介绍,比如编译器.链接库的原理,运行库的实现等等.可能是自己不常做Windows编程的缘故,便觉得索然,不愿再往下读了.反而是这书名倒让我起了些意见,明明应该叫作“深入Windows开发核心”之类,却被冠以“程序员自我修养”的名字,确有些言过其实了吧. 我也曾写过些文章,多是教程序员们如何摆弄新鲜技术,或是谈些有关职业与个人发展的话题,但对于程序员们的生活以至修养却从未敢说

《程序员的自我修养》第三章学习笔记

1,  编译器编译源代码生成的文件叫做目标文件. 从结构上说,是编译后的可执行文件,只不过还没有经过链接 3.1 目标文件的格式 1,可执行文件的格式: Windows下的PE  和   Linux下的ELF 2,从广义上说,目标文件与可执行文件的格式几乎是一样的,所以广义上可以将目标文件与可执行文件看成是一种类型的文件. 3,可执行文件,动态链接库,静态链接库都按照可执行文件格式存储(Windows下是 PE-COFF格式,Linux下是ELF格式). 4,Linux下命令: $: file 

读书笔记:程序员的自我修养-----第一章(综述)

题前:30--45天读完,一周至少3篇读书笔记.不能坚持,不再联系,不再找你. 一. hello world 程序引出的问题,看40天后,再回来看看自己的答案,提升多少. Q1:程序为什么要被编译器编译之后才可以运行?   A1 : 系统执行的机器语言,即二进制文件,程序是文本文件需要编译之后,由链接器链接需要的基本库生成二进制文件. Q2: 编译器在把C语言程序转换成可以执行的机器码的过程中作了什么,怎么做的?   A2: 预处理,汇编器生成汇编文件,编译器生成目标文件,链接器链接生成可执行文