2012年12月1日

stack栈

摘要: ./Makefile: 1 mytest:main.o stack.o 2 gcc $^ -o $@ 3 main.o:main.c 4 gcc -I include -c $^ -o $@ 5 stack.o:stack.c 6 gcc -I include -c $^ -o $@ 7 8 clean: 9 rm main.o stack.o mytest./include/stack.h: 1 #ifndef __Jerry_stack__ 2 #define __Jerry_stack__ 3 4 typedef int stackelem; 5 typedef stackele... 阅读全文

posted @ 2012-12-01 22:30 阿加 阅读(222) 评论(0) 推荐(0) 编辑

2012年11月29日

洗牌(排列)

摘要: gdb中显示数组内容:p (int [10])*a一: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 #define NUM 10 6 const int shuffle_initial[NUM] = {1,2,3,4,5,6,7,8,9,10}; 7 int shuffle_flags[NUM] = {0}; 8 int shuffle_final[NUM] = {0}; 9 10 int generate(void) 11 { 12 int i , k , j , l 阅读全文

posted @ 2012-11-29 22:34 阿加 阅读(145) 评论(0) 推荐(0) 编辑

2012年11月28日

寻找最大文件

摘要: 前几天放了个文件在服务器上,忘记放哪了,连名字都忘了,只是记得文件特别大,所以写了个脚本,查找几个最大的文件位置。还好,通过这个脚本找到了。1 #! /bin/sh 2 if [ $# -eq 0 ]3 then4 var=205 else6 var=$17 fi8 find ./* -type f | xargs ls -l --time-style '+%Y/%m/%d' | sed -n -e '/^-/p' | awk -F ' ' '{print $5 "\t" $7}' | sort -n -r | 阅读全文

posted @ 2012-11-28 11:12 阿加 阅读(206) 评论(0) 推荐(0) 编辑

2012年11月20日

C language_identifier_scope_name space_linkage_life time_storage duration

摘要: http://www.findfunaax.com/notes/file/134命名空间表示标识符的上下文。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。在编程语言中,命名空间是一种特殊的作用于,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织起来。许多现代编程语言也都支持命名空间。我们谈下C语言的命名空间(我第一次知道)C语言标准定义了4中命名空间:1. label names 所有的label位于一个命名空间下;2. t 阅读全文

posted @ 2012-11-20 10:08 阿加 阅读(299) 评论(0) 推荐(0) 编辑

2012年11月19日

thread_union位置

摘要: 内核必须能够同时处理很多进程,并把进程描述符存放在动态内存中,而不是放在永久分配给内核的内存区域(此内存区指线性地址空间中的一个区域,分配给内核的线性地址空间在3GB以上)linux把两个不同的数据结构紧紧的存放在一个单独的为进程分配的存储区内:一个是与进程描述符相关的小数据结构thread_info,叫做进程描述符,另一个是内核的进程堆栈。内核栈和进程描述符尽量在物理上连续的页匡中,但是也可分离。 阅读全文

posted @ 2012-11-19 09:10 阿加 阅读(197) 评论(0) 推荐(0) 编辑

2012年11月18日

gcc 之 inline

摘要: inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare).inline关键字不应出现在函数声明中。inline关键字仅仅是建议编译器做内联展开处理,而不是强制。在gcc编译器中,如果编译优化设置为O0,即使是inline函数也不会被内联展开,除非设置了强制内联(__attribute__((always_inline)))属性。对于可展开与必须当成函数的情形同时出现,则在展开处需展开,在当成函数调用处则当函数处理.1.1. static inlinegcc的static inline相对于static函数来说只 阅读全文

posted @ 2012-11-18 10:28 阿加 阅读(5495) 评论(0) 推荐(2) 编辑

2012年11月17日

this_fixmap_does_not_exist

摘要: 1 #include <stdio.h> 2 3 static __always_inline unsigned int show(const unsigned int a) 4 { 5 if (a>3) 6 this_fixmap_does_not_exist(); 7 return a; 8 } 9 10 11 int main(int argc, char *argv[]) 12 { 13 unsigned int a=show(0); 14 printf("%d\n",a); 15 return 0; 16 }最主要就是编译防错。宏不能上边的功能。 阅读全文

posted @ 2012-11-17 20:27 阿加 阅读(199) 评论(0) 推荐(0) 编辑

2012年11月14日

音频采样位数问题

摘要: 由于CPU的位数一般约定俗成是8的整数倍,8位、16位、32位等等,而ADC(模数转换器)的位数一般不是8的整数倍,比如9位、10位、12位、14位等等;采样生成的数据在存储时,就有了“向左对齐,右边填齐,左边填0”两种存储方法,这就是Left-Justified和Right-Justified。无压缩的WAV文件,一般使用Left-Justified。比如一个采样结果1010 0001 0111将被存储为1010 0001,0111 0000。 阅读全文

posted @ 2012-11-14 08:49 阿加 阅读(904) 评论(0) 推荐(0) 编辑

2012年10月27日

wav格式简易分析

摘要: 格式参考Multimedia Programming Interface and Data Specifications 1.0 1 aplay -C -c 1 -f U8 -r 11025 -t wav -d 7 my.wav 2 000000 52 49 46 46 9c 2d 01 00 >RIFF.-..< 3 000008 57 41 56 45 66 6d 74 20 >WAVEfmt < 4 000010 10 00 00 00 01 00 01 00 >........< 5 000018 11 2b 00 00 11 2b 00 00 &g 阅读全文

posted @ 2012-10-27 10:56 阿加 阅读(202) 评论(0) 推荐(0) 编辑

2012年10月23日

测试

摘要: 有一天,你运用了extern、volatile,结构显示conflicting type qualifiersmyhead.h 1 #ifndef MYHEAD 2 #define MYHEAD 3 4 extern int a; 5 extern void show(); 6 7 #endiftest.c 1 #include <stdio.h> 2 #include "myhead.h" 3 int a=3; 4 int main(int argc, char *argv[]) 5 { 6 7 show(); 8 printf("%d\n" 阅读全文

posted @ 2012-10-23 16:30 阿加 阅读(163) 评论(0) 推荐(0) 编辑

导航