
C/C++
@多年以后
让梦想不再成为梦想!!
展开
-
嵌入式面试题二
嵌入式面试题二嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环?方法一:for(;;) { }说明:这两个;; 空语句,编译器一般会优掉的,直接进入死循环。方法二:while(1) { }说明:每循环一次都要判断常量1是不是等于零,在这里while比for多做了这点事,不过从汇编的角度来说,都是一样的代码。方法二:第三个方案是用 gotoLoop:…goto Loop;...原创 2020-07-27 14:50:56 · 315 阅读 · 0 评论 -
Linux多定时器实现
一、setitimer函数1. 头文件#include <sys/time.h>2. 函数原型int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);which参数说明:ITIMER_REAL:给一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号;ITIMER_VIRTUA.原创 2020-07-25 15:24:03 · 1776 阅读 · 1 评论 -
条件编译使用方法
一、 如下,如果 标识符 被#define过, 编译器编译代码段1, 否则编译代码段2#ifdef 标识符代码段1#else代码段2#endif //条件编译结束的语句Eg:判断TEST_T是否被定义,下面demo中TEST_T已被定义,所以打印“代码段1”#include <stdio.h>#define TEST_T int main(void){#ifdef TEST_T printf("代码段1\n");#else pr原创 2020-07-25 14:54:13 · 529 阅读 · 0 评论 -
GBK与UNICODE编码互转
对经常玩单片机的人员来说都知道怎样通过软件制作GBK字库,再使用GBK公式计算处理在LCD屏上显示中文汉字,如果不知道GBK制作软件及方式的话可以通过文末链接下载学习;这里主要是介绍UNICODE与GBK的相互转化,在一些应用场景可能只有UNICODE编码然后中文形式显示在LCD屏上,这时可能需要转换为GBK编码。GBK与UNICODE没有直接对应的关系,通过查表方式将两者联系起来,具体实...原创 2019-04-11 15:10:05 · 5969 阅读 · 0 评论 -
嵌入式面试题总结一
/************************************1**********************************************/int a[4]={1,2,3,4}; // a:数组首元素的首地址,即 a[0]; &a:数组的首地址 int *ptr=(int*)(&a+1); // a+1:数组的下一元素的首地址,即 a[1...原创 2018-10-11 17:10:56 · 839 阅读 · 0 评论 -
STM32-ADC
1、12 位 ADC 是一种逐次逼近型模拟数字转换器。它有多达 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在16 位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC 的输入时钟不得超过 14MHz,它是由 PCLK2 经分频产生。...原创 2018-09-03 16:16:20 · 1514 阅读 · 0 评论 -
基于Linux下TCP/IP协议局域网聊天室
这两天写了聊天室,基于Linux下TCP/IP协议局域网聊天,可实现聊天、上下线提醒、在线列表、文件传输。服务器 server.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h&...原创 2018-08-01 17:22:50 · 2045 阅读 · 2 评论 -
数据结构-单链表建立
顺序表是一组连续的存储单元来依次存储线性表中的结点,而链表是用一组任意的存储单元来存放线性表中的结点,这组存储单元可不连续分布在内存中的任何位置上。因此,链表中结点的逻辑顺序与存储顺序不一定相同。为了体现各结点存储单元之间的逻辑关系,再存储每个结点的同时,还必须存储与之联系的相邻结点的地址信息,这个信息称为指针或链。在C语言中,可以用指针实现。根据不同的链接方式,链表可以分为单链表,循环链表和双向...原创 2018-06-06 21:41:06 · 12331 阅读 · 2 评论 -
数据结构-顺序表
顺序表是最简单最自然的存储方法,它是将顺序表中的结点按逻辑顺序依次存放在一组地址连续的存储单元中,也就是说,顺序表的逻辑顺序与物理顺序是一致的。一般情况下,顺序表中的所有结点的类型是相同的,也就是说每个结点所占的空间是相同的。设结点所占的空间大小为L,如果顺序表中有n个结点(顺序表的长度为n),则顺序表所占空间大小为n*L。但是由于顺序表中的结点数是不确定的,其内存空间也不确定,因此可事先分配一个...原创 2018-06-06 17:33:58 · 1559 阅读 · 0 评论 -
sizeof与strlen的区别
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值...原创 2018-06-03 15:45:27 · 173 阅读 · 0 评论