下面,作者总结了一小部分知识,让大家了解一下在学习C语言时没那么特别关注的内容。
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的标准中并没有规定,还得是依赖于平台或者编译器。