C语言查漏补缺
C语言查漏补缺
Echo_Aran
️
展开
-
C语言柔性数组
柔性数组既数组大小待定的数组,C语言中结构体的最后一个元素可以是大小未知的数组也就是所谓的0长度,所以我们可以用结构体来创建柔性数组。原创 2023-08-22 13:00:54 · 129 阅读 · 3 评论 -
char,short,int,float,double,long字节数以及long字节数的补充
long在linux64环境下所占用字节位8,也就间接说明了long在macOS下的字节长度也是8。(这是因为MacOS系统和Linux都是类Unix系统,只不过基于不同的内核)所以,在写跨平台的应用时,如果使用到long型,需要考虑到精度丢失的问题,在写跨平台应用时也尽量避免使用long型。为什么突然想起来复习这个,是因为在lc上刷题时遇到了关于long 的字节数。一开始我以为是x64的问题,换成了x86以后发现结果仍然是4字节。然后我查到了这篇文章。原创 2023-08-16 18:15:41 · 99 阅读 · 2 评论 -
unsigned char a:2的含义和%x和%02x的输出原则
unsigned char a:2的含义和%x和%02x的输出原则原创 2023-02-19 10:42:51 · 687 阅读 · 0 评论 -
#pragma pack(1)
意思为编译选项为四字对齐,所有数据在内存中是连续存储的,以4字节的方式对齐。这是编译器为了让程序跑的更快,减少CPU读取数据的指令中心,对结构体的存储进行了优化。原创 2023-02-19 10:03:09 · 279 阅读 · 0 评论 -
函数栈帧———图解
函数栈帧———图解原创 2023-02-27 12:00:08 · 125 阅读 · 0 评论 -
函数指针,函数指针数组,数组指针,指针数组
如果在程序中定义了一个函数,在编译时,编译器为函数代码分配了一段存储空间,这段存储空间的起始地址(也就是函数的入口地址),称为这个指向这个函数的指针,也就是函数指针。我们可以定义一个指向函数的指针变量,来存储这个函数的起始地址。此时,该指针指向该函数是用来存放函数指针的数组。原创 2023-08-16 12:34:56 · 59 阅读 · 2 评论 -
const和define定义
它们在程序运行时是只读的。使用const定义常量可以提高代码的可读性和维护性,同时避免在程序中出现魔法数字。define只是简单的文本替换,不具有类型,也不会进行类型检查,因此可能会导致一些潜在的问题。define是c预处理器指令,它定义的宏常量在程序中是直接替换成对应的值。define定义的常量只在预处理阶段生效,而不是在编译阶段或运行时生效。const定义的常量可以想普通变量一样使用,并且可以通过指针访问。const关键字定义的常量具有类型。原创 2023-02-26 11:09:11 · 69 阅读 · 0 评论