![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C
文章平均质量分 59
C语言相关知识
Panrison
新生代搬砖人
展开
-
C语言中typedef的用法
double x;double y;double z;在这里,结构体 struct Point 为新的数据类型,在定义变量的时候均要向上面的调用方法一样有保留字 struct,而不能像 int 和 double 那样直接使用 Point 来定义变量。double x;double y;double z;} Point;在上面的代码中,实际上完成了两个操作:double x;double y;double z;原创 2024-05-09 17:24:06 · 1825 阅读 · 0 评论 -
sizeof 和 strlen
strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。只能以char*(字符串)做参数。而且,要想得到的结果正确必须包含 ‘\0’。sizeof是一个运算符,计算的是分配空间的实际字节数。原创 2022-11-28 22:22:08 · 136 阅读 · 0 评论 -
03 strncpy函数
C语言基础原创 2022-06-11 16:13:18 · 59 阅读 · 0 评论 -
xdata,volatile,extern,static,#pragma 关键字
1. xdataxdata:声明的变量位于外部 RAM 地址范围内某一位置。2. volatilevolatile: 的本意是“易变的” ,因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化。当要求使用 volatile 声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用 volatile,则编译器将对所声明的语句进行优化。(原创 2021-12-21 20:20:44 · 1759 阅读 · 0 评论 -
02 memset函数
C语言中memset函数及其用法每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原型为:# include <string.h>void *memset(void *s, int c, unsigned long n);函数的功能是:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 v原创 2021-12-21 19:56:31 · 66 阅读 · 0 评论 -
C和C++中struct的区别
原创 2021-12-21 16:01:12 · 542 阅读 · 0 评论 -
01 sprintf函数
关于 sprintf 函数功能:把格式化的数据写入某个字符串缓冲区。头文件:stdio.h原型:int sprintf( char *buffer, const char *format, [ argument] … );参数列表:buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。[argument]…:可选参数,可以是任何类型的数据。返回值:字符串长度(strlen)sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出原创 2021-09-22 11:41:51 · 76 阅读 · 0 评论 -
C/C++ 堆和栈的区别
C/C++ 堆和栈的区别管理方式不同栈,由编译器自动管理,无需程序员手动控制;堆,产生和释放由程序员控制。空间大小不同堆是不连续的内存区域(因为系统是用链表来存储空闲内存地址,自然不是连续的),堆大小受限于计算机系统中有效的虚拟内存(32bit 系统理论上是4G),所以堆的空间比较灵活,比较大。栈是一块连续的内存区域,大小是操作系统预定好的,windows下栈大小是2M(也有是1M,在编译时确定,VC中可设置)。能否产生碎片不同栈不会产生碎片,因为栈是种先进后出的队列。堆则容易产生原创 2021-09-16 20:56:15 · 331 阅读 · 0 评论 -
结构体中的内存对齐问题
结构体中的内存对齐一.内存对齐的原因1.平台原因(移植原因): 一些资料上是这样说的,“不是所有的硬件平台都能访问任意地址上的任意数据;某些硬件平台只能在某些特定地址处取某些特定的数据,否则就会抛出硬件异常”。也就是说在计算机在内存读取数据时,只能在规定的地址处读数据,而不是内存中任意地址都是可以读取的。2.效率原因: 正是由于只能在特定的地址处读取数据,所以在访问一些数据时,对于访问未对齐的内存,处理器需要进行两次访问;而对于对齐的内存,只需要访问一次就可以。 其实这是一种以空间换时间的做法,但这转载 2021-08-24 11:23:40 · 1032 阅读 · 0 评论