C语言
文章平均质量分 66
分享C语言常用小知识
Yeah__binbin
电子通信仔一枚。
good good study,day day up!
展开
-
【嵌入式linux】修改网口MAC地址
简述嵌入式linux应用层和uboot修改MAC地址的方法原创 2022-12-13 01:44:12 · 9371 阅读 · 1 评论 -
【嵌入式linux】uboot的env加密存储和解密加载
记录一种env分区的加密和解密加载方法原创 2022-11-18 00:46:17 · 2132 阅读 · 0 评论 -
【嵌入式linux】zynq7010的SPI驱动调试、完善
记使用zynq7010的PS侧外设SPI与模块进行通信时出现的问题原创 2022-10-24 23:46:52 · 2174 阅读 · 0 评论 -
【C语言】输入字符串数组并排序
题目:输入n个字符串,并按照一定规则进行升序排序和输出我的排序规则:按照字符串里面英文字符的值之和#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#define MAXNUM 10#define MAXLEN 20int mystrcmp(char *s1,char*s2) //可按照规则自行修改{ if(s1==NULL||原创 2021-03-10 17:35:22 · 2701 阅读 · 0 评论 -
【C语言】字符串和字符串数组的输入和陷阱
浅谈:C语言写程序时,因为没有字符串数据类型,所以字符串和字符串数组的输入也是一个难题和陷阱,这里讨论一下几种字符串输入情况。字符串输入函数:1.格式输入函数:int scanf("%s",字符数组名或指针);2.字符串输入函数:char* gets(字符数组名或指针);(1)相同点:字符串接受结束后自动加’\0’。(2)不同点(容易出错):①scanf :当遇到回车,空格和tab键就认为输入结束,会自动在字符串后面添加’\0’;但是回车、空格和tab键仍会留在输入的缓冲区中(如果连续多次sc原创 2021-03-10 14:02:07 · 3753 阅读 · 2 评论 -
【C语言】字符指针数组查找字符串
#include <stdio.h>#include <string.h>const char* str[] = { "Hello","abc","applef","man","C程序设计","指针数组" };const char* pdest = "指针数组";static int str_search(const char*key, const char**pstr, int num){ int i; for (i = 0; i < n原创 2021-03-09 11:48:48 · 8149 阅读 · 0 评论 -
【C语言】C实现C++类(以String类为例)
浅谈:面向过程的C语言算是比较偏底层的高级语言,而C++、C#、Java、Python等都是面向对象的高级语言,但是C语言却稳坐编程语言排行榜前列,说明C的应用十分广泛和强大,小到输出“HELLO,WOELD!”,点亮单片机的LED等,大到用来进行嵌入式系统开发、写操作系统和实现其他高级语言。掌握C语言有助于我们学习其他编程语言,甚至可以深入理解如何提高开发的效率。C++、C#、Java、Python等高级语言创造了多姿多彩、功能强大的软件世界,C语言创造了这些语言!进入例子:C实现C++的一个类原创 2021-03-07 17:19:28 · 1615 阅读 · 0 评论 -
【C语言】Socket网络编程与TCP/IP
struct sockaddr_in servaddr;socket(AF_INET, SOCK_STREAM, 0)memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);//IP地址设置成INADDR_ANY,让系统自动获取本机的IP地址。servaddr.sin_port = htons(DEFAULT_P原创 2021-03-05 23:22:35 · 1716 阅读 · 1 评论 -
【C语言】多线程编程
多线程的优点:①与进程相比,成本低。创建和启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式;而多个线程运行于一个进程中,彼此间使用相同的地址空间,共享进程的数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。②通信机制方便,适合大量数据传送原创 2021-03-02 12:24:11 · 1852 阅读 · 0 评论 -
【C语言】变量、变量的存储区域和存储类型
变量:即在程序运行中值可变的数据;为提高程序的可读性,变量名一般由用户根据其用途自行命名,变量名由字母、数字、下划线组成,且不能以数字开头,不能与C语言的关键字重名;在程序运行时,变量占内存空间的大小由其数据类型决定。在使用前,必须声明变量,一般格式:<存储类型> <数据类型> <变量名>;局部变量:在所有函数内定义的变量(包括函数参数)都是局部变量。程序中一般都是局部变量,另外局部变量只在自己的函数内有效,即不可被其他函数使用,因此不同函数的局部变量可以重名而不原创 2020-05-27 12:40:55 · 1649 阅读 · 0 评论 -
【C语言】动态内存存储
内存存储模型:根据操作对象(变量、数组等)是否已知所需的存储空间可分为静态存储分配和动态存储分配。一、静态存储分配:通常定义了一个变量后,编译器就可根据其数据类型知道该变量所需内存空间的大小,从而系统会在运行程序时为其分配确定的存储空间。二、动态存储分配:有些操作对象只有在程序运行时才能确定,此时编译器不能知道他们需要多大的内存空间;因此,在程序运行时,系统会根据用户的要求分配存储空间且由用户决定何时释放该内存空间。这个分配方式充分利用了内存空间,还可减少了由于操作对象不确定的情况下造成的浪费和给用户提原创 2020-06-01 14:34:19 · 952 阅读 · 0 评论 -
【C语言】do{...}while(0)在宏定义中的作用
总结:do{…}while(0)在宏定义中的作用:使用do{…}while(0)构造后的宏定义不会受到大括号、分号等语句格式的影响,适用于各种场合下的调用。在C项目中,宏是提高程序可读性和算法性能必不可少的部分。而在linux内核源码和许多库中,我们经常会看到被频繁使用的宏会出现do{…}while(0)。例如:#define func(x) do{dosomething(x);}while(0)为什么要这样定义呢?这样写更简单呀:#define func(x) dosomet原创 2021-01-24 23:04:34 · 501 阅读 · 0 评论 -
【C语言】文件IO编程
文件IO编程:优点:适用于存取大量数据的场景,节省内存缺点:速度降低文件IO操作:打开->操作->关闭1.fopen函数:打开文件函数原型:FILE *fopen(const char *filename, const char *mode);打开成功会返回一个FILE类型指针,否则返回NULL(1)参数1:文件名(如果文件在当前目录下的话直接写文件名就行,否则要加上文件的路径)。(2)参数2:文件打开方式:由"r,w,a,t,b,+"六个字符拼成,各字符的含义是:r(re原创 2021-02-28 16:11:59 · 768 阅读 · 0 评论