![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 84
liuchengxu_
这个作者很懒,什么都没留下…
展开
-
编译器入门
编译器(compiler)就是一个翻译其他程序的程序而已。传统的编译器将源代码翻译为计算机能够理解的可执行机器代码(有一些编译器将源代码翻译为另一种编程语言。这些编译器叫做从源码到源码的翻译器,source-to-source translators or transpilers)。LLVM 是一个广泛使用的编译器项目,它包含了许多模块化的编译器工具。传统编译器涉及包含了三个部分:前端(front翻译 2017-08-14 22:21:46 · 7299 阅读 · 0 评论 -
深入理解C语言类型转换
C语言类型转换分为两种:显式强制类型转换隐式自动类型转换也许有人遇到过一个负数经过类型转换后可能变成一个很大的整数之类,却不知道实质上是因为什么。希望下面的解释能够解决这个疑惑。下面从详细介绍一个显式类型转换开始。要想深入理解类型转换,首先要有机器数(原码、补码和反码)的相关基本了解。我们都知道在计算机中信息都以二进制用0和1来表示信息。为了运算方便,大多采用补码形式存储数据。比如一个C语言的原创 2015-09-13 21:50:30 · 7625 阅读 · 3 评论 -
可移植的 Makefile 教程
在我写 Makefile 的头 10 年里,我养成了一个非常不好的习惯 – 完全严格使用 GNU Make 的扩展名。过去我并不知道, GNU Make 与 POSIX 所保证的可移植特性之间的区别与联系。通常情况,它并不十分重要,但是当在非 Linux 系统上进行构建时,比如在各种 BSD 系统上,就会变成一件麻烦事儿。我不得不指定安装 GNU Make,然后在心里记住不要使用系统自带的 ma翻译 2017-08-23 19:21:03 · 1120 阅读 · 0 评论