C/C++
文章平均质量分 80
thomashtq
以诚使心静,静心方能潜修,苦修以悟道,道悟则万法皆通!
展开
-
Unicode编码范围
引言unicode是全世界统一的编码规则,但只规定了各种字符的数字编码(相当于一种标准),具体实现的存储方式有utff-8,utf-16,utf-32等形式,各种形式有不同的存储和与unicode代码的映射规则。所以utf8其实不是一种单独的编码规则,只是unicode 的一种存储规则,也是unicode的一种,是变长的。中文字符范围Unicode CJK 的范围分布在多个原创 2014-09-05 15:14:27 · 18725 阅读 · 0 评论 -
gdb调试带参数程序
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址转载 2016-04-03 22:18:13 · 938 阅读 · 0 评论 -
linux下core文件调试方法
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 (1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 (2)使用ulimit -c filesize命令,可以限转载 2016-04-03 22:08:11 · 501 阅读 · 0 评论 -
深入理解Linux的fork函数
一、问题引入 工作期间,某系统设计师抛出如下一个问题,下面的代码,输出几个“-”?:[cpp] view plaincopyprint?/****************************************************************************** Copyright by Javacode007, All r原创 2015-04-14 08:08:38 · 2754 阅读 · 0 评论 -
SQLite3开启事务和关闭事务模式下,性能测试对比
最近学习了下SQLite数据库基本知识,想了解下这款小巧的数据库,性能到底怎样,于是写个性能测试程序,对 SQLite3 最新发布版(3.7.13)在Linux平台进行了测试。最后发现在开启事务模式和关闭事务模式(默认)下,性能测试结果相差近 1000 倍! 在测试的过程中,得出如下一些结论:1、对于批量数据操作,建议采用事务模式,批量提交操作。2、在提交事务之前,若程序发生异常,则所原创 2015-04-13 18:05:59 · 7321 阅读 · 0 评论 -
Linux 终端字符颜色设置
我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示。下面是Linux系统终端颜色的设置方式:终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl, C, C++等均可以调用。 转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 2原创 2015-04-14 08:05:26 · 1183 阅读 · 0 评论 -
C语言字节对齐问题详解
一、何谓字节对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲,似乎对任何类型变量的访问都可以从任何地址开始,但实际情况是在访问特定变量的时候,经常在特定的内存地址访问,而不是顺序的一个接一个的排放。为了使CPU能够对变量进行快速访问,变量的起始地址应该具有某些特性,即所谓的“字节对齐”。比如4字节的int型,其起始地址应该位于4字节的边界上,即起始地址能够被4整原创 2015-04-14 08:11:07 · 965 阅读 · 0 评论 -
Fibonacci数列第N项的两种计算方法比较
一、斐波那契数列(Fibonacci Sequence)的定义 斐波那契数列的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年,籍贯大概是比萨)。 斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、…… 这个数列从第三项开始,每一项都等于前两项之和。如果设F(n)为该数列的第n项(原创 2015-04-13 11:32:35 · 2880 阅读 · 0 评论 -
用 scanf 系列函数实现简单的 email 地址合法性检查功能
对于 scanf 家族系列函数( scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf),相信大家对它们常见的格式化输入已十分熟悉。 但是, scanf 系列函数,还有一个特殊的用法,该用法能够实现简单的字符过滤功能,类似正则表达式,您是否知道呢? scanf 函数还能实现正则表达式?让我们往下看吧^_^这个特殊的格式,就是“[ ]”,一对中括号,支持原创 2015-04-13 18:02:51 · 1057 阅读 · 0 评论 -
C语言陷阱---丢三落四
引言对于 C 语言初学者而言,丢三落四的毛病比较严重,而某些错误,编译器也不会给出任何错误或警告的提示,以致于当程序编译通过而能运行时,浑然不知自己已经掉入了 C 的陷阱中。接收标准输入时普通变量缺少取地址&符号1. 示范代码#includeint main(){ int a; printf("Input an integer: "); scanf("%d", a原创 2015-02-26 14:36:48 · 560 阅读 · 0 评论 -
C语言陷阱---指针的误用
引言 在 C 语言学习中,最大的难点就是对指针的理解和使用上。指针与内存息息相关,所以要理解指针的用法,也必须对所在平台系统的内存布局有所了解,你至少能够区分堆和栈吧(当然,此处的堆栈,可不是数据结构所指的堆栈)。指针就像一把双刃剑,用好了能写出令人惊叹的高效简洁的代码,用不好,就等着程序出现各种莫名奇妙的问题吧^_^ 注:本文如无特别说明,均在 Ubuntu 14.10 6原创 2015-02-26 16:39:27 · 2219 阅读 · 0 评论 -
C语言陷阱---数据溢出和类型转换
引言当我们进行各种数学计算(四则运算,指数运算等)时,要时刻保持警惕,防止运算结果的溢出(上溢或下溢);当进行不同类型的数据混合运算时,要注意数据类型的提升或转换,避免精度丢失。无符号整型在循环条件中造成死循环示范代码#includeint main(){ //unsigned int i = 10; size_t i = 10; while(i >= 0)原创 2015-02-26 15:19:52 · 5986 阅读 · 0 评论 -
杨辉三角的规律
引言杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。以下为 n = 5 的杨辉三角。1行 12行 1 13行 1 2 1 4行 1 3 3 15行 1 4 6 4 1性质1、每个数等于它上方两数之和。2、每行数字左右对称,由1原创 2015-02-28 15:15:26 · 24917 阅读 · 0 评论 -
C语言在32位和64位系统上各类型所占字节数
引言 对比表 小结原创 2014-08-10 18:38:28 · 20496 阅读 · 0 评论 -
Linux环境编译OpenCV的应用程序方法
示范代码://test.cpp#include <stdio.h>#include <cvaux.h>#include <highgui.h>using namespace cv;int main(int argc, char **argv) {IplImage *img = cvLoadImage(argv[1]);if (NULL == img) { printf("Load原创 2016-04-03 21:26:57 · 705 阅读 · 0 评论