![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
nicholasxia
这个作者很懒,什么都没留下…
展开
-
C 语言的前世今生
C 语言,从 1970 年代设计并实现之初,它就注定了带有强烈工程师文化的语言,而缺乏一些学术气息。它的许多细节设计,都带有强烈的实用化痕迹。C 语言因 UNIX 操作系统而生,是 UNIX 系统的母语。这导致在这个广泛应用的操作系统上开发,必须通过 C 语言的形式和系统进行交互。这不仅影响了 UNIX 一个平台上的软件,既而也影响了后来世界上最大的桌面系统 Windows ,以及越来越多的嵌转载 2012-03-02 11:06:23 · 441 阅读 · 0 评论 -
C 语言的可变参数表函数的设计
首先在介绍可变参数表函数的设计之前,我们先来介绍一下最经典的可变参数表printf函数的实现原理。 一、printf函数的实现原理 在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地转载 2012-05-25 20:50:28 · 391 阅读 · 0 评论 -
C词法分析中的“贪心法”
还记得上大学那会儿,不管是C语言期末考还是计算机二级,总有类似i++, --j, 甚至i+++j这样的题目,前者这种先使用后加减或者先加减后使用还相对好理解些,但后者就比较难把握了。但最近看了《C Traps and Pitfalls》一书中关于词法分析的描述,突然茅塞顿开。 Andrew Koenig将此类问题很形象的形容成“贪心”(译者),K&R将此表述为“If原创 2012-09-18 09:44:06 · 1043 阅读 · 0 评论