![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
架起彼岸的桥
无线通信物理层、基带软件
展开
-
C实现状态机流程控制简例
#include<stdio.h>#define TRUE 0x1#define FALSE 0x0 #define UPDATE_DEMO_STATE(st_task_state_info) do\ { \ (st_task_state_info.task_prev_state = st_task_state_info.task_curr_state); \ (st_task_state_info..原创 2020-06-11 20:40:37 · 288 阅读 · 0 评论 -
适配多模块驱动
#include<stdio.h>typedef enum moudule_id_tag{ MODULE_A = 0x1000, MODULE_B = 0x1001, }module_id_t;/* type define*/typedef void(*func1_call_api_t)(void);typedef void(*func2_call_api_t)...原创 2020-03-27 23:09:49 · 144 阅读 · 0 评论 -
调试信息记录
#include<stdio.h>#include<string.h>typedef struct demo_para_tag{ int rfnsfn; int para[5];}demo_para_t;typedef struct msg_tag{ int idx; demo_para_t demo_para[20];}msg_t;msg_t...原创 2019-12-07 16:16:43 · 192 阅读 · 0 评论 -
函数指针数组实现test用例
#include<stdio.h>typedef void (*demo_test_func)(void);int guTestFlag = 0;/*****************************/void usleep(int countTime);void demo_call_test1_msg(void);void demo_call_test1_...原创 2019-06-12 16:47:58 · 149 阅读 · 0 评论 -
状态机跳转执行代码简化
#include<stdio.h>#define STATE_1 0x0#define STATE_2 0x1typedef void (*demo_test_func)(int);typedef struct demo_msg_tag{ int msg_type; demo_test_func test_entry;}demo_msg_t;voi...原创 2019-06-14 15:58:20 · 579 阅读 · 0 评论 -
消息处理demo
#include<stdio.h>#define STATE_1 0x0#define STATE_2 0x1#define TRUE 0x1#define FALSE 0x0#define GET_MSG_BODY(demo_msg) (VOID_PTR)demo_msg.msg_bodytypedef void (*demo_test_f...原创 2019-06-14 17:59:20 · 156 阅读 · 0 评论 -
共享内存消息传递
共享内存传递消息,接收端需轮询标致位#include<stdio.h>#define TRUE 1#define FALSE 0#define MSG_TYPE1 0x30#define MSG_TYPE2 0x40#define MSG_TYPE3 0x50#define CHECK_BITMAP_FLD(s32_bitmap,s32_bit) ...原创 2019-06-15 15:47:35 · 461 阅读 · 0 评论 -
利用pending_flag实现消息入队出队
#include<stdio.h>#define TRUE 1#define FALSE 0typedef void * VOID_PTR;typedef struct rrc2phy_cell_msg_tag{ int cell_id; int freq_id;}rrc2phy_cell_msg_t;typedef struct phy_cell_msg_...原创 2019-06-10 14:45:47 · 239 阅读 · 0 评论 -
队列应用及C实现
队列(FIFO)一种数据结构,特点先入先出。应用比如消息处理等,消息无法第一时间响应,先将消息入队,顺序执行。队列实现基本步骤:创建、删除、入队、出队。复杂逻辑也是基于基本形式扩展。简单数组实现:#include<stdio.h>#include<stdlib.h>#include<string.h>#define TRUE 1#def...原创 2019-06-20 22:20:06 · 445 阅读 · 0 评论 -
根据消息类型,处理相应的中断回调
#include <stdio.h>#include <stdlib.h>/*******macro definition*********/#define MSG_TYPE1 0x1#define MSG_TYPE2 0x2/*******type definition*********/typedef void * VOID_PTR;typedef...原创 2019-05-31 17:28:49 · 221 阅读 · 0 评论 -
消息解析函数封装
#include<stdio.h>#define GET_MSG_TYPE(msg_parse) ((msg_parse)->msg_type)#define GET_MSG_CONT(msg_parse) ((msg_parse)->msg_cont)typedef void * VOID_PTR;typedef struct dl_msg_tag{ in...原创 2019-05-22 19:19:46 · 153 阅读 · 0 评论 -
排序算法时间复杂度总结
本图片系转载转载 2016-09-12 16:00:12 · 387 阅读 · 0 评论 -
输入一串字符以‘#’号键结束
输入一串字符以#号键结束getchar()的使用#include void main(){ char str[800],ch,i=0; printf("input a string until '#':\n"); while((ch=getchar())!='#') str[i++]=ch; str[i]='\0'; for(i=0;i<11;i++) printf(原创 2016-09-19 16:15:57 · 12027 阅读 · 0 评论 -
学生成绩排名--结构体的应用
对结构体的一个简单应用录入学生信息,并按成绩排名输出#includestruct Student{ int num; char name[20]; float score; }temp;void main(){ int stuNum; struct Student stu[50]; printf("请确定录入学生人数:"); scanf("%d",&stuNum)原创 2016-09-20 15:30:54 · 2821 阅读 · 1 评论 -
将连续空格合并为一个空格输出
将连续空格合并为一个空格输出--利用计数or标志来完成--提供了两种方法#includevoid main(){ int blankNum=0; char ch; while((ch=getchar())!=EOF){ if(ch==' '){ blankNum++; if(blankNum<=1){ putchar(ch); }else{ conti原创 2016-09-21 17:27:08 · 780 阅读 · 0 评论 -
回调函数简单示例
#include<stdio.h>int add(int a,int b){ return a+b;}int sub(int a,int b){ return a-b;}int mul(int a,int b){ return a*b;}int div(int a,int b){ return a/b;}typedef int (*...原创 2019-02-13 14:21:22 · 191 阅读 · 0 评论 -
函数指针数组
#include<stdio.h>void fun1(){ printf("this is fun1\n");}void fun2(){ printf("this is fun2\n");}typedef void (*funPro)();funPro funArray[2] = {fun1,fun2};int main(int argc,char **a...原创 2019-02-13 20:30:25 · 84 阅读 · 0 评论 -
C程序优化
1、在做任何执行速度上的优化时,须充分考虑优化后代码体积开销缺陷2、提倡使用查表方法3、求余,除法,乘法尽量采用位运算代替4、平方运算,改为乘法运算5、循环判断条件尽量简单明了6、使用 do while()循环替代for and while循环7、循环展开,可手动循环展开,也可由编译器完成,循环展开带来代码体积的开销和寄存器的消耗8、多采用厂家提供的内敛指令编写代码9、CPU支持的...原创 2019-04-08 19:08:56 · 263 阅读 · 0 评论