-
由于学STM32的关系,需要重点理解“看似没有调用,实际上却包含了”的技巧,这个技巧本人在没有读过以下文章之前还确实不理解。
很多人对C语言中的 &ldq...
-
在阅读源码的过程中,我发现很多的代码中都采用了链表,链表的也是非常有意义的一种。
有我们在C语言中使用的那种数据嵌套指针的方式。
也有在linux中将链表作为一个单独的对象,然...
-
指针,任何一个计算机语言都少不了的好东西。特殊问题,特殊对待。函数指针就是这么一个特殊的例子。比如:
void Run(void)
{
PORTB = ~POR...
-
volatile 的英文解释是——“易失的,易改变的”。
顾名思义,这个关键字的含义是向编译器指明变量的内容可能会由于编译器意想不...
-
关键字static在C语言里主要有两个作用:
1.修饰变量
变量分为局部和全局变量,但是都存于内存的静态区。静态全局变量的作用域仅局限...
-
一、五大内存分区:
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在...
-
举例说明volatile:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,...
-
附程序分布图:
程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函...
-
【unsigned】
16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存...
-
一、程序的内存分配
一个由C/C++编译的程序占用的内存分为以下几个部分:
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,...
-
大内高手—常见内存错误
随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调...
-
概述
Joel Spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个C/C++语言中最强劲也是最容易出错的要素。
鉴于...
-
结构化程序设计主张按功能来分析需求,主要原则自顶向下,逐步求精,模块化等。
主张按功能把软件系统逐步细分,每个功能都负责对数据进行一次处理,每个功能接收一些数据,处理完后输出一些...
-
想写个崩溃的C语言小程序,看起来是个奇怪的主意,不过在我曾经教过的一门实验课上,这是作业之一!
实际上,这是一件非常有教学意义的事情。
通常学生们要么尝试反向引用一个非法地址,...
-
问题:对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”, 它可否作为空指针或浮点零?具有“静态” 生存期...
-
问题:
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文 件, 把什么放到.h 文件。(“.h” 到底是什么意思?)作为一般规则, 你应该...
-
这有可能完全做不到。
不同的系统使用不同的方法来实现像Unix 系统的全局名字/值功能。
环境是否可以被运行的进程有效的改变, 以及如果可以, 又怎...
-
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。
定义是分配空间并赋初...
-
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全...
-
sizeof是关键字,不是函数。
记住:sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,还是不要偷懒,把括号写上...