初学C语言不了解的那些事~

嵌入式技术

1371人已加入

描述

 

正文

大家好,我是bug菌~ 其实C语言语法非常简单,可以说是目前主流编程语言中语法点最少的一门编程语言了,然而C语言也有其复杂的一面,在于其平台差异性,要编写出高效的C语言还需要结合当前CPU、操作系统、编译器等等方面来指导编程。 

1

C文件的编译

C语言中通常以.c文件作为源文件,并且源文件在链接前都是独立编译的,即.c文件可以最终并行编译成目标.o文件。

然而平时我们看到.h文件都只是为了让各C语言相互之间调用提供的接口,最终链接成最后的执行文件。

理解了这一层,你应该很好的组织的文件结构了吧。

2

数据类型固定

以前有个同事说C语言是一种"已知数据类型的编程语言",当时没怎么特别太在意。

其实随着你的编程经验的丰富,会发现如果在编程的过程中不知道数据的具体大小,多半会在赋值或者复制的过程中出问题。

3

C语言内存

C语言的内存简单点分总的来说就两种--堆和栈,栈属于动态内存,这是我们的C语言运行调用栈必要的,而堆是静态内存,动静结合构成了程序中内存的操作。

平时所遇到的动态内存分配malloc等,都只是静态内存的用使用换空间提高利用率的方式。

4

struct编程

struct可以说是C语言OO最直接的语法了,数据、方法都可以打包带走,打包访问,从而让数据更加内聚,使用时也更加有针对性。

5

static与const

static和const都是对数据和方法的安全使用做贡献的,C语言是一门简单且灵活的编程语言,太自由的马,就比较容易犯错;那么这两个关键字可以在一定程度上对函数、变量进行拘束,提高程序的健壮性。

关键还是你要对程序足够的理解,且在编程的时候考虑他们。

6

数据大小与有无符号

对于整形数各个平台的实际内存占用大小可能是不同的,在C标准通常也只是规定了其最小的大小,所以在编码前要提前了解。

同样对于char类型也不一定总是8bit的,通常其表示的是当前嵌入式平台的最小寻址大小。

还有char类型大部分认为是有符号类型,只是省略了signed,然而C99的标准中并没有规定,还得是依赖于平台或者编译器。

 


 



审核编辑:刘清
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分