C
文章平均质量分 73
云上
敏捷开发实践者;
专注移动产品开发。
展开
-
sizeof() 用法汇总
sizeof() 功能:计算数据空间的字节数 1. 与 strlen() 比较 strlen() 计算字符数组的字符数,以 "/0" 为结束判断,不计算为 /0 的数组元素。 而 sizeof 计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 2. 指针与静态数组的 sizeof 操作 指针均可看为变量类型的一种。所有指针变量的转载 2010-04-21 22:50:00 · 556 阅读 · 0 评论 -
【术语解析】H264和MPEG4的关系
·mpeg-4的初衷是将dvd质量的图像码流从每秒6兆降低到1.5兆,将高清电视的码流从每秒几十兆降低到6~8兆。要实现这样的编码压缩水平,就要用到一种叫avc(advanced video codec)的技术。国际电联(itu)将这项技术命名为h.264标准,mpeg 把这项技术放到mpeg-4标准里的第10章(part 10)。这就是mpeg-4和h.264的关系。 ·h.264/avc转载 2012-04-07 19:44:03 · 1672 阅读 · 0 评论 -
完成端口(IOCP)编程探讨
本文主要探讨一下windows平台上的完成端口开发及其与之相关的几个重要的技术概念,这些概念都是与基于IOCP的开发密切相关的,对开发人员来讲,又不得不给予足够重视的几个概念:1) 基于IOCP实现的服务吞吐量2)IOCP模式下的线程切换3)基于IOCP实现的消息的乱序问题。一、IOCP简介 提到IOCP,大家都非常熟悉,其基本的编程模式,我就不在这里展开了。在这里我主要转载 2012-03-16 10:38:29 · 795 阅读 · 0 评论 -
如何学好C语言
有人在酷壳的留言版上询问下面的问题keep_walker:今天晚上我看到这篇文章。http://programmers.stackexchange.com/questions/62502/small-c-projects我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛?谢谢!我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的转载 2011-11-26 00:54:19 · 714 阅读 · 0 评论 -
一种固定内存池的实现(含代码)
<br /> <br />所谓内存池,是指,应用程序可以通过系统的内存分配调用预先一次性申请适当大小的内存作为一个内存池,之后应用程序自己对内存的分配和释放则可以通过这个内存池来完成。只有当内存池大小需要动态扩展时,才需要再调用系统的内存分配函数,其他时间对内存的一切操作都在应用程序的掌控之中。<br />应用程序自定义的内存池根据不同的适用场景又有不同的类型。<br />从线程安全的角度来分,内存池可以分为单线程内存池和多线程内存池。单线程内存池整个生命周期只被一个线程使用,因而不需要考虑互斥访问的问题;转载 2011-04-07 17:54:00 · 737 阅读 · 0 评论 -
如何用C语言提取含有大量数据文件的特定信息(包含16进制数据的提取)
<br /><br />用C++读取文件中的数据时,会出现一些“莫名”的错误(即在C#中不会出现),这跟C中的API有关。最近笔者帮一位同事调试程序时,就遇到了这种情况。 文件数据(用于编写系统缓存)如下所示(只显示其中的一部分):<br />183 0 0x00000010<br />269 1 0x094055b0<br />346 1 0x094055a8<br />361 1 0x094055ac<br />489 0 0x00000028<br />575 1 0x094055c8<br />66转载 2011-03-22 15:30:00 · 2285 阅读 · 0 评论 -
Linux下的调试工具
<br />随着XP的流行,人们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试工作,经过这个过程出来的自然是高质量的软件。甚至有人声称XP会淘汰调试器!这当然是有一定道理的,然而就目前的现实来看,这还是一种理想。在日常工作中,调试工具还是必不可少的。在Linux下,调试工具并非只有gdb,还有很多其它调试工具,它们都各有所长,侧重方面也有所不同。本文介绍几种笔者常用的调试工具:<br />1. mtrace<br />在linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错转载 2011-02-12 00:10:00 · 594 阅读 · 0 评论 -
条形码扫描示例程序
/*适用8300版本M/D : 2007.5.14 KNL : 8300K-3.23 LIB : 8300L-2.21 */#include #include #include #define BYTE unsigned char#define BOOL unsigned char#define ULONG unsigned long#define TRUE 1#define FALSE 0#de转载 2011-01-24 09:39:00 · 1751 阅读 · 0 评论 -
一个女生用C语言写的爱情函数
<br /> result love(boy, girl)<br /> {<br /> if ( boy.有房() and boy.有车() )<br /> {<br /> boy.set(nothing);<br /> return girl.嫁给(boy);<br /> }<br /> else if ( girl.愿意等() )<br /> {<br /> while( ! (boy.赚钱 > 100,000 and girl.感情 > 8 ) )<br /> {<br />转载 2010-08-16 01:24:00 · 921 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。sizeof还可以用函数做参数,比如: short f();printf("%d/n", sizeof(f()));输出的结果是sizeof(short),即2。 4.数组做sizeof的参数不退化,传递转载 2010-08-16 01:19:00 · 489 阅读 · 0 评论 -
可重入函数与不可重入函数
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码转载 2010-08-13 01:52:00 · 470 阅读 · 0 评论 -
linux进程控制编程与守护进程编写实例
今天搞定了linux进程控制编程,大体总结一下自己的体会:1、linux创建新进程唯一方法fork()调用,fork调用一次,一定返回两个值,返回值为0则在子进程中,返回值>0,这个返回值是子进程的Pid,说明在父进程中,因为父进程要控制子进程经常要用到子进程的pid,这样可以方便父进程的调用。2、创建好了一个进程,它继承了父进程的整个地址空间,那怎么执行它呢?用exec函数族就OK了,这些函数在unistd.h头文件中定义了,明白l、v、e、p的含义就能轻松调用了。3、进程早晚要退出的,退出有两种方式:e转载 2010-08-13 00:55:00 · 804 阅读 · 0 评论 -
linux下C语言多线程编程实例
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread programming in linux *author : falcon *E-mail : tunzhj03@st.lzu.edu.cn */#include #i转载 2010-08-11 13:54:00 · 650 阅读 · 0 评论 -
Android NDK的C/C++代码中利用JNI回调实现字符编码转换
在NDK下做网络传输时,遇到一个编码转换的问题,就是对方传过来的文件名是中文GBK编码,需要转成UTF8来处理。平常在C/C++环境下编程时,系统都会提供字符编码转换的API。如Windows下有MultiByteToWideChar之类的函数,Linux下有iconv库,纯C下用wcstombs、mbstowcs也可以做。然而我在我机上的Android NDK目录下,并没有找到iconv转载 2012-07-09 17:29:58 · 1700 阅读 · 0 评论