Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 »  程序设计分类

生产者消费者问题

生产者消费者问题是一个经典的进程同步问题,本文讲解不同生产者消费者问题的解决思路,并提供一个完整的实现代码。

继续阅读»

位运算实现加减乘除四则运算

程序设计中大量使用到加减乘除等四则运算,但有时我们被要求只用位操作来实现这些功能,本文将通过具体代码介绍如何使用位运算实现加减乘除取模和乘方等操作,可以借此看到位运算使用的巧妙之处。

继续阅读»

C++11的多线程编程

C++11标准直接提供了并发编程的支持,这是C++新标准中非常重要的部分,可以极大的提高程序的可移植性。以前的多线程编程基本上依赖于特定的操作系统,比如Linux环境下使用pthread库。现在有了统一的接口进行实现,本文将通过几个简单的实例介绍常见的多线程编程的使用方法。

继续阅读»

C++11中的lambda表达式

lambda表达式是C++11新增加的一个特性,其允许程序员定义匿名函数,该函数一般比较短小,一次性执行,这样既方便了编程,又能防止外部访问。
本文将通过几个简单的例子说明lambda表达式的使用方法。

继续阅读»

编写最简单的内核:HelloWorld

内核是操作系统最核心的内容,主要提供硬件抽象层、磁盘及文件系统控制、多任务等功能,由于其涉及非常广泛的计算机知识,很少被人们所熟悉,因而披上了一层神秘的面纱。
本文将从零开始实现一个最简单的内核,其可以通过x86系统的GRUB引导启动,并向屏幕输出“Hello World!“字符串。该内核代码非常简短,并且在本人的Debian 7系统中可以正常运行。

继续阅读»

CJSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也方便机器解析和生成,成为一种理想的数据交换语言。
CJSON是一个用c写的JSON解析器,它非常小巧,只有单个文件,使用起来非常方便,本文将简单介绍CJSON的使用方法。

继续阅读»

do {…} while(0)

do {…} while(0)是很多项目,比如Linux内核源代码,中经常遇到的代码,表面上看毫无意义,但其中包含了一个巧妙的编程技巧。
本文将对这个问题做一个简单的分析。

继续阅读»

C/C++变长参数的原理与实现

C/C++语言可以支持参数个数可变及参数类型不定的函数,虽然实际编程中用到的可能不多,但深入研究下其细节还是有点意思的。
本文将主要介绍C/C++变长参数的原理与实现。

继续阅读»

内联汇编

内联汇编是指在C/C++代码中嵌入的汇编代码,在Visual Studio中使用内联汇编可以使用在C/C++中的变量,不需要额外的编译器和链接器,效率很好,而且可以解决一些普通代码不能解决的问题,在特定的场合中使用起来非常方便。
本文将通过几个例子简单介绍Visual C++中使用内联汇编的相关知识。

继续阅读»

Windows计时函数

评估程序的运行效率是程序设计过程中经常遇到的需求,一般可以在程序代码段的首尾分别记录当时的时间,然后相减得到程序运行的实际时间,时间越长说明效率越低,需要想办法优化。
Windows平台下提供了许多API函数来完成这个功能,本文将简单介绍常用的几种方法,不同方法有不同的精度和运行环境要求,可以根据不同的情况适当选择。

继续阅读»

Python编程的中文问题

字符编码问题是每个程序员必定会遇到的,同样,python的中文问题一直是一个非常令人头疼的问题,本文将介绍Python中涉及到中文细节问题。
建议在阅读这篇文章之前,先前往字符编码详解这篇文章了解相关字符编码的原理细节。

继续阅读»

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论