11 2012 档案

洗牌(排列)
摘要: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 阿加 阅读(152) 评论(0) 推荐(0)

寻找最大文件
摘要:前几天放了个文件在服务器上,忘记放哪了,连名字都忘了,只是记得文件特别大,所以写了个脚本,查找几个最大的文件位置。还好,通过这个脚本找到了。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 阿加 阅读(220) 评论(0) 推荐(0)

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 阿加 阅读(314) 评论(0) 推荐(0)

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

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

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 阿加 阅读(5641) 评论(0) 推荐(2)

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 阿加 阅读(209) 评论(0) 推荐(0)

音频采样位数问题
摘要:由于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 阿加 阅读(936) 评论(0) 推荐(0)

导航