自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 004_多重条件编译写法?

#可以看到,这个##运算符是把a,b,c三个字符拼接在一起,组成新的字符穿哦可以看出来,#是把跟在其后的内容和其前面的内容拼接在一起1.#if后面要接宏定义且定义要有值,比如将#define L100 1改为#define L100那么就会编译报错2.实#if类似if语句,他也会判别宏定义值的真假状态,并不是说只要有宏定义就一定是真哦3.#ifdef并不分辨宏定义值的真假,只要你定义了宏,那就走#ifdef分支,否则就走#else分支。

2024-08-19 16:15:42 759

原创 003_c语言中怎么逐个获取一个字符串的字符?

对于上述三个方法,想必大家都比较熟悉和易懂,因为操作的对象都是字符数组,这个很好理解,要么直接遍历字符数字,要么定义一个char* p;p = str;然后p++;去遍历字符数组,也很好去操作和改变,这里不再赘述,那么要是字符指针呢?比如char* tp = "11:22:33:44:55:66^77:88:99:00:aa:bb^cc:dd:ee:ff:gg:hh^ii:jj:kk:ll:mm:nn";我们想提取最后一个mac呢?或者说想遍历这个指针字符串呢?

2024-08-14 13:59:18 705

原创 002_unsigned long数据比较的坑?

unsigned long 类似数据的比较问题,先上一段代码,如下图所示:就是图中框出的部分,眨眼一看,应该没啥问题,而且我也在本地的编译器vs2019上编译了,确实也没有报错,所以就修改上了项目的库,但是库上却编译报错,如下:明显提示的意思大概就是:无符号类型数据和0比较了,所以报错,那么为什么呢?还有,同样是unsigned long类型的数据变量,为什么if(gtxpack>0 && grxpack>0)这个语句不报错呢?

2024-06-25 17:55:04 939

原创 015_表驱动编程思想(c实现)

数据压倒一切。如果选择了正确的并把一切组织的井井有条,正确的算法就不言自明。编程的核心是数据结构,而不是算法。——Rob Pike上面是这个名人说过的话,那么c语言之父 丹尼斯·麦卡利斯泰尔·里奇 的《c程序设计》里曾经也有这样一句话:(原文是:program = algorithm + data structure)

2024-05-25 14:51:26 709

原创 014_C标准库函数之<stdio.h>

stdio .h头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。

2024-05-25 11:18:32 643

原创 013_C标准库函数之<signal.h>

还是说就直接终止了呢?关于信号的应用及扩展,在Linux中有大量的描述,以及sigaction等功能强大的函数,这个有兴趣的可以去看看,后面我们也会在Liunx C模块中去讲解这些,当然了,本人还是觉得先把C的这些搞清楚,因为linux C是在C的基础之上去搞的,切勿好高骛远哦,一步步来,加油,一起共勉。),其实就是准备捕获的信号的参数由sig给出,接收到的指定信号后要调用的函数由参数handle给出,接下来再看外面的函数:我们把signal看作一个整体T,外面的函数形式就是void (*T)(int);

2024-04-18 12:15:08 885

原创 012_C标准库函数之<limits.h> & <float.h>

C标准库中有这样两个头文件limits.h和float.h,这两个头文件主要是干啥的呢?头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制了各种变量类型(比如 char、int 和 long)的值。这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255头文件包含了一组与浮点值相关的依赖于平台的常量。这些常量是由 ANSI C 提出的,这让程序更具有可移植性。

2024-04-08 19:49:40 728

原创 011_C标准库函数之<time.h>

头文件中说明了一些用于处理日期和时间的类型和函数。其中的一部分函数用于处理当地时间,因为时区等原因,当地时间与日历时间可能不相同。clock_t和time_t是两个用于表示时间的算术类型,而struct tm则用于存放日历时间的各个成分。tm的各个成员的用途及取值范围如下:int tm_sec;/* 秒,0~61 */int tm_min;/* 分,0~59 *//* 时,0~23 *//* 日,1~31 */int tm_mon;/* 月(从1月开始),0~11 */

2024-04-07 16:26:19 659

原创 010_C标准库函数之<setjmp.h>

setjmp 和 longjmp

2024-03-23 14:06:24 643

原创 009_C标准库函数之<stdarg.h>

1.va_start, va_arg, va_end是宏,是帮助我们实现可变参数函数的工具,缺一不可2.可变参数函数的入参,第一个入参是表明接下来有几个参数哦3.若是入参不够的话,可变参数函数会使用随机值哦。

2024-03-21 21:45:22 581

原创 008_C标准库函数之<assert.h>

这个头文件里,只有一个函数(实际是一个宏函数),那就是void assert(int exp);函数,那么这个函数到底是干什么用的呢?

2024-03-18 21:47:50 276

原创 00_lte->wifi传导测试,空口测试

在做wifi嵌入式开发时(系统是RTOS系统),经常会遇到一个比较重要的问题:性能测试这个可以说是产品的命脉,一切都要给性能让步,那么我们来看下,当性能有问题时,怎么debug?举个例子吧,我们调试的过程遇到的一个问题,如下:(2.4G wifi6(ax))1.lte->usb FDD测试可以跑到145Mbps/s(理论值是150Mbps/s,这个145是pass的)

2024-03-18 21:12:09 860

原创 007_C标准库函数之<math.h>

头文件中说明了数学函数和宏。宏EDOM和ERANGE(定义在头文件中)是两个非0整常量,用于引发各个数学函数的定义域错误和值域错误;HUGE_VAL是一个double类型的正数。当变量取值在函数的定义域之外时,就会出现定义域错误。在发生定义域错误时,全局变量errno的值被置为EDOM,函数的返回值视具体实现而定。如果函数的结果不能用double类型表示,那么就会发生值域错误。

2024-03-16 17:49:31 796

原创 006_C标准库函数之<ctype.h>

字符类测试:头文件中说明了一些用于测试字符的函数。每个函数的变量均为int类型,变量的值必须是EOF或可用unsigned char类型表示的字符,函数的返回值为int类型。如果变量满足所指定的条件,那么函数返回非0值(表示真);否则返回值为0(表示假)。这些函数包括2.1~2.11。在7位ASCII字符集中,可打印字符是从0x20(' ')到0x7E('~')之间的字符;控制字符是从0(NUL)到0x1F(US)之间的字符和字符0x7F(DEL)。

2024-02-27 16:19:50 889

原创 005_指针常量与常量指针

1.格式://指针类型 + const + 指针名 (const修饰的是指针名哦)2.本质是一个常量,但是类型是指针类型的,所以就是指针常量,这个指针常量只能固定的指向一个方向,后续不能再被修改指向3.指针指向地址的内容是可以被修改的,可以通过指针解引用赋值修改,也可以通过原来指向的变量赋值进行修改,都是可以的口诀:常量修饰指针名,方向固定是本能,变量内容随便改,敢动方向就不行4.常量指针格式1://格式:类型 const *指针名格式2://格式:const 类型 *指针名。

2024-02-23 12:06:28 1738

原创 004_C标准库函数之<stdlib.h>

在头文件中说明了用于以及的函数。数值转换:字符串和字符串之间的转换内存分支:主要说的是动态内存的申请使用等。

2024-02-22 20:33:45 919

原创 001_int* last的坑?

总结踩过的C坑,是为了进一步提升,不在同一个地方踩坑,不然将永无止境...

2024-02-04 16:27:29 333

原创 003_文件读写_C

文件读写

2023-11-13 15:09:36 150

原创 002_互斥锁总结整理

主要介绍线程和锁的简单使用,大神可以绕过

2023-10-19 21:10:17 118

原创 00_shell基本知识大扫盲

shell基础知识大全

2023-10-07 19:53:23 145

原创 Ubus举例_001_异步查询并返回数据实现

国家码自适应适配:在设置国家码的时候,我们会先读取协议那边的sim卡内容,根据sim卡字符串,然后去匹配出对应的国家,最后设置到/etc/config/wireless文件中去,那么问题是:协议通知sim卡状态的消息在我们ubus订阅成功之前,也就是说当我们订阅成功对应的ubus事件后,人家协议早就通知过了sim卡状态(开机后只通知一次),所以我们必须去invoke查询sim卡状态消息注意:在UBUS中,像这种需要带回返回数据并完成响应操作的状况,我们一般都用同步查询函数,但我开始就选择了异步查询,因为不管

2023-09-01 17:43:38 578 1

原创 000_函数指针和指针函数?

函数指针:实际是一个指针,只不过这个指针指向的是一个函数地址(函数名)罢了格式: int (*funcptr)(int, int);指针函数:实际上是一个函数,只不过返回的值为指针类型罢了格式:int* func(){/*do something...*/return int* data;}

2023-08-31 20:19:43 71

原创 Ubus举例_000

这个是用来构造表和成员的枚举数据这个是用来存储解析后的数据,以备后用,其实可以下面定义:这里我不想再定义了,所以复用了下,AclInfoResp中的其他数据我不关注,所以我在下面的表格构建中,也没有增加对应的定义实现。

2023-08-26 17:20:48 143

原创 libubox-blob/blobmsg

blob及blobmsg

2023-08-25 15:10:15 502

原创 001_Linux驱动编程_hello.ko

linux驱动开发实践

2023-08-25 11:22:18 134

原创 001_安全函数_C_safe_library

这里我们对这个返回值一般不关心,因为我们主要是初始化内存块,获得返回值对于我们来说也并没有什么太大的用,是作为返回给系统进行校验的,这个有兴趣的可以去查询下关于size_t,errno_t, rsize_t类型的定义和含义,我们这里主要介绍函数功能和使用。返回一个整数,0表示复制成功,返回非0值代表复制不成功,不同的值表示不同的错误,具体内容可以查阅MSDN手册。返回一个整数,0表示复制成功,返回非0值代表复制不成功,不同的值表示不同的错误,具体内容可以查阅MSDN手册。

2023-08-04 20:49:06 1901

原创 002_ubus操作记录练习

=============uci操作dhcp==========================#=============uci操作==========================###获取solution.termianl下的服务接口列表#########手动ubus call调用method##########修改配置并提交,记得reboot#######修改网络ip#######删除修改的ip#####更新某个节点的值#####获取接口#####重启wifi##

2023-07-25 20:56:00 123

原创 002_[string.h]c标准库函数之<string.h>

话说c中有很多标准库函数,其中最具特色的就是字符串相关的库函数,而这类函数也是最让人头大的,当然,熟悉后就不大了,头就小了,哈哈,以下是自己的温习记录以及心得,拿出来与同行们分享下,希望有错误的地方大家给指出来,3Q,话不多说,我们开始......

2023-07-22 18:26:58 424

原创 Makefile单个及多个文件编译,路径引用,只讲干货不拖拉_00

显然,Makefile就无法搜索到了,这个需求是非常合理的,因为在我们开发中,通常会把头文件和.c文件分开归类,那么我们如何告知Makefile我们的log.h文件放在head目录下了呢?如图,我们要编译008_memset_s.c和memset_s.c两个文件,生成我们的edit,当然还包括了log.h和securecutil.h文件,log.h文件在head目录下,securecutil.h文件在safe_c_library目录下。如下图,我运行make指令,生成了对应的.o文件和edit终极目标。

2023-06-25 14:50:57 2493 1

安全函数-C-safe-library

安全函数-C-safe-library

2023-08-04

ubus操作记录练习记录及操作

ubus操作记录练习记录及操作

2023-07-25

string.hc标准库函数之<string.h>

个人总结函数表格

2023-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除