C语言集锦
文章平均质量分 57
记录遇到的C语言点点滴滴
Mculover666
CSDN博客专家,微信公众号mculover666,凭借与生俱来的热爱专注于嵌入式领域,在自己折腾的同时,以文字的方式分享所玩、所思、所想、所悟,作为一个技术人,我们一起前进~
展开
-
C++基础 | 从C到C++快速过渡
NULL原创 2023-03-06 20:15:57 · 3589 阅读 · 0 评论 -
C程序是如何跑起来的01 —— 普通可执行文件的构成
但是BSS段的大小、起始地址、各个变量的地址信息都会分别保存在sectionheadertable和符号表symtab中,当程序运行的时候,加载器会根据这些信息在内存中紧挨着数据段之后的空间,为BSS段开辟一片存储空间,为各个变量分配存储空间。BSS段比较特殊,未初始化的全局变量和静态变量都会放置到bss段中,但因为这些变量的值都是0,没有必要再开辟空间存储,所以在可执行文件中bss段是不占用空间的。描述,包括段名、段的类型、段的起始地址、段的偏移、段的大小等。参数查看的就是该表。...原创 2022-07-30 11:55:39 · 1258 阅读 · 0 评论 -
分享一个日常使用的hexdump函数
void hexdump(uint8_t *buf, uint32_t len){ int i = 0; printf("----------------------hexdump------------------------"); for(i = 0; i < len; i++) { printf("%02x ", buf[i]); if( (i+1) % 16 == 0) { printf("\n");原创 2022-02-24 11:42:36 · 1226 阅读 · 0 评论 -
C语言 | 使用 sscanf 提取AT命令返回结果中的有效数据
1. sscanf函数sscanf是C标准库函数,用于从字符串中读取格式化输入。头文件:#include <stdio.h>函数原型如下:int sscanf(const char *s, const char *format, ...);函数返回值:返回成功读取的数量。2. 使用实例AT指令参考文章:移远 EC200S 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程提取信号强度AT命令返回结果为:+CSQ: 17,0OK先使用s原创 2021-09-21 10:32:55 · 1623 阅读 · 0 评论 -
C语言 | 位图数组在XY方向镜像翻转算法实现
一、问题图片已经取模生成点阵数组,每1位控制像素点是否显示,如何镜像翻转?二、字符方式显示位图void show_image_by_ascii(uint8_t *image, uint32_t width, uint32_t height, char ch){ uint32_t i, j; uint32_t total_bytes, bytes_per_line; uint8_t t; total_bytes = width * height / 8; by原创 2021-09-06 20:36:42 · 1231 阅读 · 0 评论 -
C语言集锦 | 03 - C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体)
文档版本更新时间更新内容v1.02020-09-14初稿完成文章目录一、typedef关键词二、结构体(重点)1. 为什么需要结构体2. 什么是结构体3. 如何定义结构体4. 如何使用结构体4.1. 赋值和初始化4.2. 访问每个成员4.3. 结构体变量的运算4.4. 结构体作为函数传递问题5. 结构体内存对齐问题(面试常考)5.1. 问题描述5.2. 问题原因5.3. 问题分析6. 结构体数组6.1. 静态数组6.2. 动态数组三、枚举体1. 什么是枚举体2. 如何定义枚举...原创 2020-09-14 09:10:18 · 1794 阅读 · 0 评论 -
C语言集锦 | 02 - C语言的灵魂(指针)
文档版本更新时间更新内容v1.02020-09-13初稿完成文章目录一、指针的重要性二、指针的定义1. 什么是地址2. 什么是指针3. 什么指针变量4. 一个指针变量占多少个字节三、指针的分类1. 基本类型指针2. 指针和数组2.1. 指针和一维数组2.2. 指针变量的运算2.3. 指针数组和数组指针3. 指针和结构体4. 指针和函数4.1. 什么是函数指针4.2. 函数指针的作用4.3. 函数指针的用法5. 多级指针四、void*指针的妙用五、动态内存分配和释放1. 静态内...原创 2020-09-13 14:56:10 · 897 阅读 · 0 评论 -
C语言集锦 | 01 - C基础语法(数据类型、输入输出、运算符、流程控制、函数、数组、static关键字)
一、数据类型数据类型关键字:数据类型占用字节范围char1-128 - 127unsigned char10 - 255short2unsigned short2int4unsigned int4long4unsigned long4long long(C99加入)8unsigned long long(C99加入)8float4double8/** * CP原创 2020-09-13 10:20:56 · 1486 阅读 · 0 评论 -
字符在计算机中的存储
在计算机中提供给用户最常见的显示就是字符,也称之为文本,字符的种类非常多,每种语言都有自己的字符集,那么,这么多的字符,如何存储进计算机中呢?本文为你揭晓英文字符、中文字符、以及全世界所有字符在计算机中的存储。一、字符存储的本质每个字符都通过字符集的映射转化为一个整数存储在计算机中,所以存储字符的本质还是存储整数。那么,如何确定一个字符对应的整数是多少呢?二、英文字符集 —— ASCII上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一规定,这一规定被称为 ASC原创 2020-09-12 10:02:09 · 7386 阅读 · 0 评论 -
C语言从一段字符串中提取IP地址的方法
1. 需求当前待解析字符串格式为:+CIFSR:STAIP,<Station IP address>+CIFSR:STAMAC,<Station MAC address>某次通信具体的数据内容为:+CIFSR:STAIP,"0.0.0.0"+CIFSR:STAMAC,"98:f4:ab:da:a6:7f"要从中提取出ip地址目标字符串[0.0.0.0]。2. 实现方法① 利用strstr找到固定头部;② 利用sscanf提取具体数值;3. 实现代码#inc原创 2020-08-13 11:13:20 · 3619 阅读 · 3 评论 -
C语言中getopt()函数的用法
1.getopt()函数getopt函数用来解析命令行选项,声明所在头文件为:#include <unistd.h>函数原型如下:int getopt(int argc, char * const argv[], const char *optstring);第一个参数argc是原创 2020-06-09 17:37:04 · 11097 阅读 · 3 评论 -
好玩!C语言打印彩色字符,还能闪烁!
1. ANSI escape code最近在研究日志打印组件easylogger,玩转各种彩色日志打印不亦乐乎,好奇心越来越重,遂深入研究,发现了一个非常神奇的东西:ANSI escape code!escape sequence code 全称叫做 escape sequence code,即 Escape 序列屏幕控制码,其实就是一些特殊的字符,将这些字符加入到printf打印的内容中,...原创 2020-04-10 15:31:49 · 15153 阅读 · 34 评论 -
C语言 | 冒泡排序算法
1.功能将输入的数组按照从小到大冒泡排序。2. 算法实现int bubble(int a[], int n){ int temp; int i,j; for(i = 0; i< n-2;i++) { for(j = 0;j < n-1-i;j++) { if(a[j] > a[j+1...原创 2020-04-09 08:07:26 · 1262 阅读 · 2 评论