首页
学习
活动
专区
工具
TVP
发布

嵌入式大杂烩

专栏作者
104
文章
253613
阅读量
49
订阅数
一道简单但易错的C语言面试题
正确答案是B选项。首先,要注意的一点是这里的if判断条件里用的是=号,而不是==号,这个小陷阱可能会迷惑一些初学C语言的朋友。如果这里用的是==号的话,正确答案自然就是C选项了。
正念君
2019-11-28
5620
C语言代码优化的一些经验及小技巧(一)
不可将布尔变量直接与 TRUE、 FALSE或者 1、 0进行比较 。据布尔类型的语义,零值为“ 假”(记为 FALSE),任何非零值都是“ 真”(记为TRUE)。 TRUE的值究竟是什么并没有统一的标准。例如 Visual C++ 将 TRUE定义为 1, 而 Visual Basic则将 TRUE定义为-1 。
正念君
2019-11-28
9470
程序的组成、存储与运行
一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM, RAM 相当于内存, Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。
正念君
2019-11-28
1.3K0
C语言代码优化的一些经验及小技巧(三)
简单的循环可以展开以获取更好的性能,但需要付出代码体积增加的代价。循环展开后,循环计数应该越来越小从而执行更少的代码分支。如果循环迭代次数只有几次,那么可以完全展开循环,以便消除循坏带来的负担。例如:
正念君
2019-11-28
2.2K0
C语言代码优化的一些经验及小技巧(四)
在C语言中,最常用的无限循环语句主要有两种:while(1)和for(;;)。从功能上讲, 这两种语句的效果完全一样。那么,我们究竟该选择哪一种呢?
正念君
2019-11-28
5900
易错、经典问题:return不可返回指向栈内存的指针
数据保存在静态存储区与动态存储区的区别就是:静态存储区在编译-链接阶段已经确定了,程序运行过程中不会变化,只有当程序退出的时候,静态存储区的内存才会被系统回收。动态存储区是在程序运行过程中动态分配的。
正念君
2019-11-28
1.2K0
把notepad++配置成一个能编译C代码的记事本
本博客已经不只一次提过MinGW了,往期关于C语言方面的推文中,示例代码都是用Notepad++来编写,然后用MinGW中的gcc工具来编译。MinGW的配置及使用方法:【C语言笔记】使用notepad++、MinGW来开发C程序。MinGW是是 Minimalist GNU for Windows 的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合。其包含gcc工具,可以使用gcc工具来编译我们的C代码。MinGW 提供了一套完整的开源编译工具集(如gcc等工具),以适合 windows 平台应用开发,且不依赖任何第三方C运行时库。
正念君
2019-11-27
6020
【C语言笔记】关于有符号数与无符号数的一些总结
原因是因为编译器会将有符号数b转换成为一个无符号数,即此处a+b等价于a+(unsigned int)b。
正念君
2019-06-26
3.4K0
【C语言笔记】两个小知识
C语言包含头文件时应该使用尖括号还是双引号?使用尖括号<>,编译器会到系统路径下查找头文件;而使用双引号“”,编译器首先在当前路径目录下查找头文件,如果没有找到,再转到系统目录下查找。所以,通常使用尖括号包含标准头文件,使用双引号包含自定义头文件。如:
正念君
2019-06-26
8470
【C语言笔记】什么是ANSI C标准?
我们在很多地方都有看到过K&R C、ANSI C、ISO C、C89、C99、C11等标准,具体有什么不同呢?(文末有个很好的实例)
正念君
2019-06-26
2.6K0
【C语言笔记】C语言编译的过程
如果你使用的是集成开发环境,那么你点击编译按钮就可生成可执行文件,然后点击运行即可运行。那么,你知道从源代码到可执行文件经历了哪些过程吗。仅仅是编译?
正念君
2019-06-26
11.9K0
【C语言笔记】结构体内存对齐
在32位编译系统下这一个结构体的字节数是多少呢?是1+4+1+2=8字节吗?不是的,实际结果为12字节。为什么呢?因为编译器会对不足4字节的变量空间自动补齐为4个字节(这就是内存对齐),以提高CPU的寻址效率(32位CPU以4个字节步长寻址的)。
正念君
2019-06-26
6220
【Linux笔记】Vi/Vim编辑器
vi编辑器是Linux和Unix上最基本的文本编辑器(所有版本的 Linux 都带有 vi 编辑器),工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。Vim 是Vi improved的缩写,是 vi 的改进版。
正念君
2019-06-26
1.1K0
【C语言笔记】指定初始化器
C99增加了一个新特性:指定初始化器(designated initializer)。利用该特性可以初始化指定的数组元素,也可以初始化指定的结构体变量(往期笔记【C语言笔记】结构体有用到这个特性对结构体变量进行初始化)。
正念君
2019-06-26
9970
【C语言笔记】static关键字
C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。
正念君
2019-06-26
8550
【C语言笔记】Windows下体验Linux环境
若要使用Linux环境,可以把Linux操作系统装在真机上,也可以把Linux操作系统安装在虚拟机上(如VMware)。本文介绍除了这两种方法之外的第三种可以使用Linux环境的方法,请往下看。
正念君
2019-06-26
2.1K0
【C语言笔记】windows命令行下编译C程序
有关注我的朋友可能会知道我的C开发环境是:Notepad++与MinGW相结合,即用Notepad++写代码,用MinGW这个工具包中的gcc编译器进行编译。如:
正念君
2019-06-26
2.8K0
【C语言笔记】复合赋值语句
增加一个变量的值有两种方式,如:a = a + 5和a += 5。存在两种增加一个变量值的方法有何意义呢?K&R C设计者认为复合赋值符可以让程序员把代码写得更清楚些。另外,编译器可以产生更为紧凑的代码。
正念君
2019-06-26
1.3K0
【C语言笔记】volatile关键字
volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
正念君
2019-06-26
6870
没有更多了
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档