嵌入式单片机设计吧
关注: 24 贴子: 93

  • 目录:
  • 程序设计及人工智能
全部
  • 0
    //数组实现链表 typedef int PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; typedef int ElementType; #define SPACESIZE 11 struct Node{ ElementType element; Position next; }; struct Node CursorSpace[SPACESIZE]={{0,1},{0,2},{0,3},{0,4},{0,5},{0,6},{0,7},{0,8},{0,9},{0,10},{0,0}}; static Position CursorAlloc(void){ Position P; P = CursorSpace[0].next; CursorSpace[0].next = CursorSpace[P].next; return P; } static Position CursorFree(Position P){ CursorSpace[P].next = CursorSpace[0].next; CursorSpace[0].next = P; } bool isEmpty(List L){ return CursorSpace[L].next == 0; } //是
  • 0
    单项链表 typedef int ElementType; struct Node; typedef struct Node* PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; Position Header(List L); Position First(List L); Position Advance(Position P);//前进 ElementType Retrive(Position P);//检索 #endif struct Node{ ElementType element; Position next; }; bool isEmpty(List L){ return L->next == NULL; } //是否是最后一个元素 bool isLast(Position P,List L){ return P->next == NULL; } //查找链表中的元素 Position ListFind(ElementType X,List L){ Position P; P = L ->next; while( P != NULL && P->eleme
  • 1
    脚本语言一般都会提供一个命令行窗口,让你输入一条一条的语句,马上解释执行它,并得到输出结果,比如 Node.js、Python 等都提供了这样的界面。这个输入、执行、打印的循环过程就叫做 REPL(Read-Eval-Print Loop),今天我们也简单实现了一个可以计算a+b+c的REPL。 //========================================================================= typedef struct varTree{ int Elementkey; int varValue; char varName[20]; struct varTree* left; struct varTree* right; }varTreeNode_t; varTreeNode_t * My_varTree = NULL; varTreeNo
  • 1
    #include<stdio.h> #include<string.h> #include<stdlib.h> #define DEBUG(X) printf(X) struct TreeNode; typedef struct TreeNode *Position_t; typedef struct TreeNode SearchTree_t; typedef int ElementType_t; struct TreeNode{ ElementType_t Element; SearchTree_t* Left; SearchTree_t* Right; }; SearchTree_t* MakeEmpty(SearchTree_t* Tree){ if(Tree != NULL){ MakeEmpty(Tree -> Left); MakeEmpty(Tree -> Right); free(Tree); } return NULL; } SearchTree_t* Insert(ElementType_t X,SearchTree_t* Tree){ if(Tree == NULL){ //create and return a one node tree Tree = malloc(sizeof(struct TreeNod
  • 6
    可以简单分析赋值语句 如:char a = 10; 生成AST树 const char* const AST_string[] = { "CharDeclaration", "AssignmentExp", "IntLiteral", }; enum syntactic_parser_types{ CharDeclaration = 0, AssignmentExp, Ast_IntLiteral, }syntactic_parser_type; typedef Save_Token_t tokens_fun_t(void); typedef struct tokens_fun{ tokens_fun_t *peek; tokens_fun_t *read; }Token_fun; static int save_token_read_index = 0; Save_Token_t token_peek(void){ if(save_token_read_index >= save_token_index){ //return NULL; } return Mytokens[save_token_read_index]; } Save_Token_t t
  • 2
    简单实现了一个词法分析器,可以解析 money > 45 money >= 45 两条语句 enum token_enum_states{ Init = 0, Id,//abc_ IntLiteral,//1123 GT,//> GE,//>= ERR }token_enum_state = Init; typedef void Fun_append(char ch); typedef struct token{ enum token_enum_states type; char text[20]; Fun_append* append; }Token; Token new_token; static char index = 0; void my_append(char ch){ new_token.text[index] = ch; index++; } void init_index(){ char i; index = 0; for(i = 0; i < 20; i++){ new_token.text[i] = 0; } } #define bool char #define TRUE 1 #define FALSE 0 bool is_alpha(char
  • 10
    上一篇我们简单配置了下51单片机的串口,设置波特率为9600,数据格式为8N1.有同学认为这个8N1不就是通信协议吗? 这个当然不是了,这个只是对串口的硬件进行配置,如下: 串口参数设置 通信速率 波特率 数据位 停止位 校验位 9600 8位 1位 无 电脑的串口助手设置如下 只要大家把串口都配置成8N1,波特率为9600,我们就可以让单片机和电脑进行串口通信了。 但是通信也要有通信协议,否则数据传输会出现问题,就比如,一个用汉语讲话,一个用英语
    Shark 6-26

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

会员: 会员

目录: 程序设计及人工智能