
C语言
HAOMCU
这个作者很懒,什么都没留下…
展开
-
全局变量,局部变量,静态全局变量,静态局部变量
全局和静态变量都在堆里。 全局变量的作用范围是整个程序(如果程序是多个文件,必须在其他的文件中说明)。 静态变量的作用范围要看静态变量的位置,如果在函数里,则作用范围 就是这个函数。 静态全局变量,只在本文件可以用,虽然整个程序包含多个文件,但静态全局变量只能用在定义它的那个文件里,却不能用在程序中的其他文件里。它是定义存储因型为静态型的原创 2011-12-31 09:13:04 · 1023 阅读 · 0 评论 -
[C语言]字符串处理- 提取字符串指定部分(支持中文字符)
[C语言]字符串处理 - 提取字符串指定部分(支持中文字符)2008-11-5: 增加StringSubU(可处理中文字符串,以前的StringSub遇到中文会取半个字符),为此写了StrLenU和StrSetPosU函数。字符串以1开始计算,如果取的字符个数为-1等负值时,表示取从初始值开始的所有字符。/*C代码如下*/#include /*处理中文字符*//*遍转载 2011-11-23 18:01:10 · 13871 阅读 · 0 评论 -
Linux下C语言来检测USB设备以及自动挂载
/*下面是我根据网上一篇文章的思路整理的来的,以及测试验证通过,将其中的打印换成标准的C打印就可以直接拿来跑。目前只是验证了U盘,没有进行硬盘测试,以及一些异常测试。但是证明整个通道是OK的。该代码的作用是:在机顶盒上检测有USB的插拔,即可通知到应用,这个不难办到,关键是插拔之后应用还要能够访问U盘目录,所以就要进行手动的mount 和umount操作。*/http://www.转载 2011-11-23 18:00:10 · 14699 阅读 · 3 评论 -
二进制与BCD码转换
#define WORD_MSB(x) *((unsigned char *)&x+1)#define WORD_LSB(x) *((unsigned char *)&x)unsigned int saveBCD;//二进制数转换为压缩BCD数,结果存入saveBCD中int BinToBcd(unsigned char val){ unsig转载 2011-10-24 11:49:51 · 4997 阅读 · 0 评论 -
关于对齐
昨天在cortex A9的uboot上直接操作内存是遇到了一些问题,跟对齐有关,现总结如下。我当初是这样操作的:*(vu_long *)0x0fffffff = 0xa5;但是此操作会失败,cpu重启,开始的时候以为是数据对齐的问题,把 *(vu_long *)0x0fffffff = 0xa5改为*(vu_long *)0x0fffff00 = 0xa5可以正常操作,因位cortex A9是32原创 2011-09-30 12:14:56 · 940 阅读 · 0 评论 -
scanf使用
昨天老大找我谈话了,给我聊了一些他的工作经验,给我提了一些建议,一是要明确自己到职业方向;二是要养成不断学习的习惯,要多看书;三是要养成记录问题的习惯,总结,沉淀。收益匪浅,要践行之。今天使用scanf写了一个程序,开始的时候是这样写的:char cmd;while(1){ print_menu(); scanf("%c", &cmd);原创 2011-08-25 16:55:49 · 1049 阅读 · 0 评论 -
C程序的存储布局
一个由 C/C++编译的程序占用的内存(memory)分为以下几个部分:1. 程序代码区(.text):存放函数体的二进制代码 。2. 文字常量区(.rodata):常量字符串就是放在这里的,程序结束后由系统释放(rodata—read only data)。3. 全局区/静态区(static):全局变量 和 静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域(.rwd原创 2012-12-03 10:52:13 · 1033 阅读 · 0 评论 -
Linux system函数返回值
原帖见:http://blog.youkuaiyun.com/cheyo/article/details/6595955例:[cpp] view plaincopystatus = system("./test.sh"); 1、先统一两个说法:(1)system返回值:指调用system函数后的返回值,比转载 2012-12-25 14:23:12 · 1173 阅读 · 0 评论