C语言相关
tpfgfxz
希望可以在技术这条路上走的更远,同时希望可以和大家一起分享工作中的心得!
展开
-
函数指针的经典应用
tyepedef struct _QUEUE{int buf[SIZE];int head;int size;int tail;int (*isFull)(_QUEUE *const me);int (*isEmpty)(_QUEUE *const me);}QUEUE;转载 2013-02-22 19:06:40 · 343 阅读 · 0 评论 -
C语言宏中"#"和"##"的用法
在查看linux内核源码的过程中,遇到了许多宏,这里面有许多都涉及到"#"和"##",因此,在网上搜索了一些资料,整理如下:一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include #include using namespace std; #define STR(s) #s #define CONS(转载 2013-07-09 22:41:34 · 447 阅读 · 0 评论 -
单片机下最小多任务程序
任务函数的书写: void 函数名(void){//任务函数必须定义为无参数型 while(1){//任务函数不得返回,必须为死循环 //....这里写任务处理代码 task_switch();//每执行一段时间任务,就释放CPU一下,让别的任务有机会运行. } } 任务装载: task_load(函数名,任务槽号) 装载函数的动作可转载 2013-08-16 00:02:35 · 823 阅读 · 0 评论 -
C语言各种排序算法汇总
1)“冒泡法” 冒泡法大家都较熟悉。其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。 void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/ { int i,j,temp; for(i=0;i for(原创 2013-09-15 22:56:31 · 1277 阅读 · 0 评论 -
二分法查找
int binary_search(int array[],int value,int size){ int low=0,high=size-1,mid; while(low { mid=(low+high)/2; if(value==array[mid])//比较是不是与中间元素相等 return mid; else if(value > arra原创 2013-09-15 23:00:24 · 617 阅读 · 0 评论 -
软件滤波方法总结
软件滤波算法 (2008-09-03 09:22)分类: 技术文章 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次转载 2013-09-15 23:24:56 · 1402 阅读 · 0 评论 -
IIC总线协议
AT24C02是由ATMEL公司提供的,IIC总线串行EEPROM(electronic eraser programmer read only memory),其容量为2kbit(256B),工作电压在2.7v"5.5v之间,生产工艺是CMOS。 一般数字芯片都在左下角和右上角为GND,VCC。容量的计算方法:AT24Cxx :01"1024 容量 = xx * 1k转载 2014-03-27 11:49:16 · 731 阅读 · 0 评论 -
寄存器绝对地址操作
嵌入式系統中往往需要讓程序跳到內存的某個地址去執行,比如想讓程序跳轉到絕對地址是0x100000去執行,應該怎麼做?這樣:*((void (*)(void))0x100000)();即可。解釋一下,想讓程序跳到某個絕對地址去執行得用函數指針,這或許也是函數指針的一個妙用吧!語句void(*)(void)聲明了一個返回值是void、無參數的函數的函數指針,這個转载 2014-03-27 09:44:31 · 3318 阅读 · 1 评论 -
typedef和#define的用法与区别----转载
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;type转载 2014-03-27 10:41:20 · 534 阅读 · 0 评论