- 论坛徽章:
- 0
|
我有一些疑惑,想听各位是怎么理解的
发表于: 2005-05-10 10:11 发表主题: 我有一些疑惑,想听各位是怎么理解的
--------------------------------------------------------------------------------
我有一些疑惑,想听各位是怎么理解的
1、首先是lint的问题,昨天晚上看微软的那本无错代码那本书,又在推荐使用lint,其他的一些书也推荐使用,但lint确实是比较严格,我用它查一段小代码,确实发现一些有用的问题,但也有很多垃圾,尤其是在想我们正在做的大型项目中要检查一个单独的文件更是困难,因为lint会顺带着检查所有引用的头文件,这让我困惑,因为我觉得它有用,却不能用
lint是有项目的概念的,可以在配置文件里面指定头文件和各种参数。这个工具还是很有用处的。
2、还有就是关于gcc的警告级别,缺省的是多少,如何提高警告级别(检查出更多的错误),如何设置成最低的级别
man gcc
3、还有个问题是现在的项目(这个项目可以形容为胖嵌入式系统,内存在128M)中遇到的,原来所有的数据都是基于全局变量的,现在使用一个结构包含这些变量(数目比较可观,结构的大小估计为100K左右),我的问题是将这个结构是按照原样声明为全局变量来存取好,还是在全局只保留个指针,一开始时为这个指针分配内存,在最后释放好?(就只从技术的好坏的角度来看,不考虑具体项目的要求)
全局变量最终生成的映像文件可能会变大,但是存取速度上稍微能快一点点(直接寻址和间接寻址的差别),具体得看项目的要求。
4、跟上面的问题相关的,如果我需要生成一些字符串(长度不定,根据具体情况),是在前面的结构里为每个字符串开辟一个最大空间呢,还是在结构里,只保留字符串的一个指针,用时分配内存?
你如果内存多,而且每个字符串的大小长度范围比较固定,能确定最大值的话用前者,否则用后者。看你们项目的技术要求了。
5、跟上一个相关,如果假设采用保留字符串的一个指针的方式,那我考虑可能有几种做法,哪种更好呢?
A) 在一开始为指针分配最大空间,一直使用这个最大空间,赋值后不释放多余空间
B)在一开始为指针分配最大空间,在给字符串赋值后使用realloc释放不用的空间
C) 一开始不分配,在给字符串赋值前分配最大空间,赋值后不释放多余空间
D)一开始不分配,在给字符串赋值前分配最大空间,赋值后使用realloc释放不用的空间
E)一开始不分配,在赋值时,为局部变量(具有最大空间)赋值,然后为指针分配正合适的空间,然后使用strcpy将局部变量拷贝到指针
或者有其他方法?
或者使用字符串的一个指针的方法不是一个好方法?
我个人推荐E,虽然速度上会又稍许的损失。
BTW,上面几点都应该是跟项目要求和环境配置密切相关的。 |
|