
C语言进阶
文章平均质量分 66
深度剖析C语言
是北豼不太皮吖
喜欢的东西就去做,不必思考太多
展开
-
枚举与#define 宏的区别
枚举类型的使用方法枚举与#define 宏的区别原创 2022-07-05 16:37:59 · 783 阅读 · 2 评论 -
如何用程序确认当前系统的存储模式?
union 关键字的用法与 struct 的用法非常类似。union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。一个 union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是 double 型态,所以 StateMachine 的空间大小就是 double 数据类型的大小。p.i 的值应该为多少呢?其值由系统所采用的 存储模式原创 2022-07-05 15:53:57 · 451 阅读 · 0 评论 -
柔性数组到底如何使用呢?
用途 : 长度为0的数组的主要用途是为了满足需要变长度的结构体用法 : 在一个结构体的最后, 申明一个长度为0的数组, 就可以使得这个结构体是可变长的. 对于编译器来说, 此时长度为0的数组并不占用空间, 因为数组名本身不占空间, 它只是一个偏移量, 数组名这个符号本身代表了一个不可修改的地址常量C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小可变的数组。...原创 2022-07-05 10:22:03 · 345 阅读 · 0 评论 -
空结构体多大?
空结构体多大?struct 关键字原创 2022-07-04 23:52:42 · 476 阅读 · 0 评论 -
extern关键字
1.extern 可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,下面的代码用到的这些变量或函数是外来的,不是本文件定义的,提示编译器遇到此变量和函数时在其他模块中寻找其定义。就好比在本文件中给这些外来的变量或函数带了顶帽子,告诉本文件中所有代码,这些家伙不是土著。C语言规定,如果在定义函数时省略extern,则默认为外部函数。extern 修饰的变量或函数是定义还是声明?答:是声明2.至于 extern“C”的用法,一般认为属于 C++的范畴,这里就先不讨论。extern "C"的主要作原创 2022-07-04 23:39:44 · 299 阅读 · 0 评论 -
volatile关键字
volatile 关键字和 const 一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。先看看下面的例子:这时候编译器对代码进行优化,因为在(1)、(2)两条语句中,i 没有被用作左值。这时候编译器认为 i 的值没有发生改变,所以在(1)语句时从内存中取出 i 的值赋给 j 之后,这个值并没有被丢掉,而是在(2)语句时继续用这个值给 k 赋值。编译器原创 2022-07-04 18:22:27 · 166 阅读 · 0 评论 -
const关键字
const关键字const 修饰的只读变量节省空间,避免不必要的内存分配,同时提高效率修饰一般变量修饰数组修饰指针修饰函数的参数修饰函数的返回值在另一连接文件中引用 const 只读变量:原创 2022-07-04 17:00:47 · 346 阅读 · 0 评论 -
return 关键字
return 用来终止一个函数并返回其后面跟着的值给函数的调用者。return关键字退出函数运行的同时,给函数返回怎么样的数据?是什么类型的数据?是int类型?char类型?还是void类型?其实,return返回的数据类型是由函数定义决定的,函数定义的时候,有“返回数据类型”这样的属性,它决定了return返回的数据类型。return 可以返回些什么东西呢?看下面例子:str 属于局部变量,位于栈内存中,在 Func 结束的时候被释放,所以返回 str 将导致错误。return 语句不可返回指向“原创 2022-07-04 15:56:30 · 239 阅读 · 0 评论 -
void关键字
void关键字void 修饰函数返回值和参数void 指针如果函数的参数可以是任意类型指针,那么应声明其参数为 void *。void 不能代表一个真实的变量原创 2022-07-04 15:38:23 · 279 阅读 · 0 评论 -
case 关键字后面的值有什么要求吗?
case 关键字case 关键字后面的值有什么要求吗?case语句的排列顺序使用 case 语句的其他注意事项原创 2022-07-04 10:30:31 · 4116 阅读 · 1 评论 -
变量与“零值”的比较
变量与“零值”的比较bool 变量与“零值”进行比较整型变量与“零值”比较float 变量与“零值”进行比较指针变量与“零值”进行比较原创 2022-07-03 23:01:13 · 320 阅读 · 0 评论 -
signed、unsigned关键字
我们知道计算机底层只认识 0、1.任何数据到了底层都会变计算转换成 0、1。那负数怎么存储呢?肯定这个“-”号是无法存入内存的,怎么办?很好办,做个标记。把基本数据类型的最高位腾出来,用来存符号,同时约定如下:最高位如果是 1,表明这个数是负数,其值为除最高位以外的剩余位的值添上这个“-”号;如果最高位是 0,表明这个数是正数,其值为除最高位以外的剩余位的值。...原创 2022-07-03 17:18:20 · 196 阅读 · 0 评论 -
sizeof关键字
1.sizeof 是关键字不是函数,它是 32 个关键字之一。2.sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,咱也别偷这个懒,乖乖的写上括号。3.sizeof返回的占用空间大小是为这个变量开辟的大小,而不是它用到的空间。所以对结构体用的时候,大多情况下得考虑字节对齐的问题了。4.sizeof返回的数据类型是unsigned int;一个无符号的数和有符号的数运算,大多编译器都是转化成无符号类型运算。5.要注意数组名和指针变量的区别。通常情况下,原创 2022-07-03 11:14:10 · 829 阅读 · 0 评论 -
什么是数据类型?数据类型有什么用?
数据类型基本数据类型什么是数据类型数据类型有什么用原创 2022-07-02 13:45:45 · 1036 阅读 · 0 评论 -
static关键字
static关键字修饰变量静态全局变量静态局部变量修饰函数static的第三个作用是默认初始化为0static全局变量与普通的全局变量有什么区别 ?static局部变量和普通局部变量有什么区别 ?static函数与普通函数有什么区别?...原创 2022-07-02 12:35:47 · 261 阅读 · 0 评论 -
register关键字
register关键字前言register关键字的作用register关键字的应用场景register关键字的注意事项原创 2022-07-02 10:44:46 · 189 阅读 · 0 评论 -
什么是定义?什么是声明?它们有何区别?
什么是定义?什么是声明?它们有何区别?什么是定义?什么是声明?它们有什么区别?原创 2022-07-01 23:21:15 · 331 阅读 · 1 评论