存档

‘程序开发’ 分类的存档

【C/C++】static关键字的作用

2010年12月25日 没有评论

static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种在C/C++语言中使用, 第三种只在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).

(1)局部静态变量

(2)外部静态变量/函数

(3)静态数据成员/成员函数

下面就这三种使用方式及注意事项分别说明

一、局部静态变量

在C/C++中, 局部变量按照存储形式可分为三种auto, static, register

与auto类型(普通)局部变量相比, static局部变量有三点不同

阅读全文...

分类: 程序开发 标签: , 6,509次阅读

volatile关键字的作用:防止变量被编译器优化

2010年12月25日 没有评论

volatile关键字是一种类型修饰符,用它声明的类型变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

其中关键在于两个地方:     
 
1. 编译器的优化

在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;

当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致

当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致

当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致 

2. 在什么情况下会用到

阅读全文...

分类: 程序开发 标签: , , 7,138次阅读

PPM、PGM、PBM图像文件格式说明

2010年12月18日 2 条评论

PPM、PGM、PBM三种都是图像文件格式:

  • PPM->Portable PixMap 支持真彩色图形,可以读上面所有格式,输出PPM图形
  • PGM->Portable GreyMap 支持灰度图形,能够读PBM图形和PGM图形,输出PGM图形
  • PBM->Portable BitMap 支持单色图(1个像素位)

三种文件格式结构相同,都非常简单,没有压缩。由表头和图像数据两部分组成。表头数据各项之间用空格(空格键、制表键、回车键或换行键)隔开,表头由四部分组成:

① 文件描述子:指明文件的类型以及图像数据的存储方式;

② 图像宽度;

③ 图像高度;

④ 最大灰度值或颜色值.

阅读全文...

分类: 程序开发 标签: 7,285次阅读

【SQL】行列互换代码实例

2010年12月13日 没有评论

对数据表中的行列进行互换,实际开发中用到的一个技巧。直接通过sql语句实现,比起先用sql获取数据再通过其他代码进行行列转换要方便很多。

看到一段很好的参考代码,摘录学习:

阅读全文...

分类: 程序开发 标签: 3,505次阅读

字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

2010年11月24日 2 条评论
字符编码笔记:ASCII,Unicode和UTF-8

作者: 阮一峰 

版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 

最后修改时间:2007年10月29日 09:46 

今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 

结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 

下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 

阅读全文...

分类: 程序开发 标签: 11,369次阅读

【PHP】统计中英文单词数(GB2312/UTF-8编码)

2010年11月24日 3 条评论

英文单词的统计可以直接用php原生的函数str_word_count来进行统计。但这个函数对于中文汉字显得无能为力,无法准确统计到汉字个数。

解决办法是根据汉字的编码规则,自己来实现中文汉字数统计和中英文单词数统计。汉字编码参考Unicode编码表GB2312区位码、编码表与编码规则

对于GB2312编码的字符采用以下函数:

阅读全文...

分类: 程序开发 标签: , 8,814次阅读

GB2312区位码、编码表与编码规则

2010年11月24日 没有评论

GB2312共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。       

GB2312区位码

GB2312对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。

  • 01-09区为特殊符号。          
  • 16-55区为一级汉字,按拼音排序。           
  • 56-87区为二级汉字,按部首/笔画排序。          
  • 10-15区及88-94区则未有编码。        

阅读全文...

分类: 程序开发 标签: 34,574次阅读

【Shell】逐行读取并处理文本(文件)

2010年11月11日 3 条评论

对输入的文本按行读取并进行处理,可使用如下代码: 

cat data.dat | while read line
do
    echo "File: ${line}"
done

while read line
do
    echo "File: ${line}"
done < data.dat

阅读全文...

分类: 程序开发 标签: , 15,444次阅读

【Linux】GDB用法详解(5小时快速教程)

2010年10月20日 没有评论

很不错的GDB学习教程,写得很有条理,转过来收藏--->>>

GDB是一个强大的命令行调试工具。虽然X Window提供了GDB的图形版DDD,但是我仍然更钟爱在命令行模式下使用GDB。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。 UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。

于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地方。

阅读全文...

分类: 程序开发, 软件技巧 标签: , 13,349次阅读

【Linux】vimdiff使用笔记-合并文件

2010年10月13日 没有评论

vimdiff是一个不错的文本比较和合并的小工具,会以不同颜色显示文本的增删情况便于合并;习惯了vim的童鞋用起来会很顺手。

略学了一下,完成了第一个文件合并任务,记录如下:

启动vimdiff

方法一:# vimdiff  FILE_LEFT  FILE_RIGHT

方法二:# vim -d  FILE_LEFT  FILE_RIGHT

方法三:# vim FILE_LEFT 之后打开vim后输入:vertical diffsplit FILE_RIGHT

阅读全文...

分类: 程序开发, 软件技巧 标签: , 22,732次阅读

无觅相关文章插件,快速提升流量