c语言记录
文章平均质量分 72
c语言学习记录
fsczp
这个作者很懒,什么都没留下…
展开
-
stack heap irom iram flash
在看rt_thread官方教程第二节的时候讲到了动态内存分配,因为概念不清晰所以上网查了一下,现在做一个小结。stack栈,是编译器自动分配和释放的。例如:局部变量int a;char str[];char *p;这个a和str[],指针p都是在栈里面管理的有个小例外char *p = “12345”这里的指针p在栈里面,但是它指向的内容12345呢是在常量区的链接: 什么是代码区、常量区、静态区(全局区)、堆区、栈区?.heap堆,是程序员自己分配的。malloc和free原创 2021-09-11 17:57:02 · 254 阅读 · 0 评论 -
linux下用C语言实现HTTP客户端-获取网络时间-设置linux系统时间
源码#include <stdio.h>#include <sys/types.h> #include <sys/socket.h>#include <string.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <stdlib.h&原创 2021-01-25 11:59:04 · 2802 阅读 · 3 评论 -
学习了课程后参考的rtsp的数据传输框架后写下的tcp server
顺序mainserver_init()–函数server_listen() --线程dealwithmsg()–线程服务器#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <arpa/inet.h>#include <stdlib.h>#include <string.h>原创 2021-01-12 11:22:01 · 139 阅读 · 0 评论 -
ortp学习记录-session-会话
大概这样去理解这些session都公用一条线路,为了能够分辨出哪个包是哪个session的ssrc=getenv("SSRC"); if (ssrc!=NULL) { printf("using SSRC=%i.\n",atoi(ssrc)); rtp_session_set_ssrc(session,atoi(ssrc)); } 用getenv这个api去获取一个指向SSRC环境变量的指针,通过这个指针里面的信息去包装这个session包(用rtp_session_set_ssrc原创 2020-09-25 19:48:43 · 234 阅读 · 0 评论 -
ortp学习-防止某个函数被多次调用的设计
学习ortp库中发现了一个技巧static int ortp_initialized=0; //先定义一个静态全局变量/** * Initialize the oRTP library. You should call this function first before using * oRTP API.**/void ortp_init(){ if (ortp_initialized) return; //第一次调用的时候是0,所以不会return ortp_initialized+原创 2020-09-25 17:40:44 · 221 阅读 · 0 评论 -
1.数组名是指针吗? 2.*(P+1)和P[1]?
数组名是指针吗参考文章【嵌入式】C语言高级编程-长度为0的数组(05)https://blog.csdn.net/dengjin20104042056/article/details/107169463下面这段话引用自参考文章大家在各种场合,可能常常会看到这样的字眼:数组名在作为函数参数进行参数传递时,就相当于是一个指针。在这里,我们千万别被这句话迷惑了:数组名在作为函数参数传递时,确实传递的是一个地址,但数组名绝不是指针,两者不是同一个东西。数组名用来表征一块连续内存存储空间的地址,而指针是一原创 2020-08-05 11:25:05 · 1468 阅读 · 0 评论 -
如何通过链表来管理驱动的?
参考资料链接: Linux双向循环链表的实现.链接: 双向链表与循环链表.下面的图是mmc设备的驱动分析与链表相关的文件在list.h头文件里面有定义关于list_add_tail之前是不懂的,总觉得新的结点是放在了一个很奇怪的位置,或者说是头结点的前面。后来上网查询得知链表是可以循环的,放在头结点的左边相当于加到了最后面了,具体分析可以看参考资料的文章,写的非常好。关于网卡驱动中间通过for循环去遍历整个eth_devices链表,找到最后一个节点之后,就把新的设备插入到最后的位置。原创 2020-06-04 16:13:30 · 191 阅读 · 0 评论 -
关于二维数组的一些使用感悟
首先我是在学习的时候遇到这样一段代码char cmd[MAX_CMD_PART][MAX_LEN_PART]; //当前解析出来的命令void cmd_paser(char *str){ int i; //step1:把用户输入的命令字符串分割放入cmd中 cmdsplit(cmd, str); //step2:把cmd中的次命令的第一个字符串与cmdset里面比较 cmd_in...原创 2020-04-24 19:19:08 · 914 阅读 · 0 评论 -
strcmp和!
strcmp是c语言的基础吧。可能会有人觉得我这么简单都写个文章来记录,肯定很水。不过有没有人看都不一定,权当自己记录好了。SYNOPSIS #include <string.h> int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const...原创 2020-04-23 20:26:43 · 936 阅读 · 1 评论 -
static局部变量的应用
文章目录关于静态变量的理解为什么我会查询关于静态变量的资料呢?普通按键的例子触摸按键的例子一个简单的例子来说明static局部变量关于触摸按键和按键输入两个例子关于静态变量的理解链接: static静态变量的理解.我是从这里面找到资料的。为什么我会查询关于静态变量的资料呢?因为在正点原子STM32例程里面有按键实验和电容触摸按键的实验,里面都运用到了static变量,来操控按键是否可以连...原创 2020-04-17 14:31:15 · 521 阅读 · 0 评论 -
单链表相关的学习记录(定义结点、头插、尾插、遍历、逆序)
单链表相关的学习记录(定义结点、头插、尾插、遍历、逆序)定义一个结点头插,从链表头部插入新结点在尾部插入新的结点遍历逆序主函数用到的头文件定义一个结点typedef struct node{ int data; struct node *pNext; }mynode;mynode * build_a_node(int data){ mynode *p = (mynode*)ma...原创 2019-10-26 16:18:08 · 311 阅读 · 0 评论 -
双链表-删除结点学习记录
这里是节选的我看完课程后自己再写一次的双链表里面的删除结点的一段代码int delete_node(dlnode *pHeader,int data){ dlnode *p = pHeader; if(NULL == p) { return -1; } while(NULL != p->pNext) { p = p->pNext; if(p->...原创 2019-10-30 23:38:47 · 269 阅读 · 0 评论