vc的一点小建议
2013-03-08 09:15
169 查看
vc:
一.C-style 字符串 把脉vc++--p114
1.无法回避的结束符
采用字符数组表示字符串时,必须在数组的末尾不失时机的加上一个结束符‘\0’,否则无辜的程序会一直读取内存,其结果不堪设想。例:
char msg[] = {'h','e','l','l','o'};
cout << msg << endl;
结果输出:
hello 烫烫烫烫烫
由于缺少结束符,cout 操作输出了一段代码,如果在其他的场合犯上同样的错误可能会闯下更大的祸如:带来程序非法关闭。
2.不够安全,容易引起内存越界和泄漏
字符数组毕竟还是数组,可能有内存越界错误。一个字符型指针必须指向合理合法的位置,否则很危险。例:
char *msg;
strcpy(msg,"hello");//危险
要用好strcpy必须这样操作:
char msg[10];
strcpy(msg,"hello");
但如果这样用还是危险--- strcpy(msg,"hello,world");//长度超长
常见的操作是定义一个常量,如_MAX_MSG ,它的值作为数组长度。
3.不便复制与串接
字符串操作在标准c里不可直接用加减符号,在c++里有对加减的重载。
二.命名规则:
1使用合适的域操作符,一条很好的建议就是在全局标识符前面统一加上域作用符“::”,如::MessageBox(),
它就表明用的是windows API 中定义的全局函数;此外,在引用基类成员变量或是函数时,如果该标识符被重载或者覆盖,最好加上域作用符。
2.类的私有数据成员的标示符可以附以下画线前缀“_”。如:_name;这样至少让使用该类的程序员感觉的不舒服,从而提醒他不要直接使用该成员。
三.为了程序运行的效率,编译器在一定的优化设置下可能对里面的成员排放位置做了一些调整,使得整个结构体的大小为一个字长的整数倍,这就是所谓的对齐。
所以siziof()结构体的结果是根据编译器而定的,编程需谨慎。
一.C-style 字符串 把脉vc++--p114
1.无法回避的结束符
采用字符数组表示字符串时,必须在数组的末尾不失时机的加上一个结束符‘\0’,否则无辜的程序会一直读取内存,其结果不堪设想。例:
char msg[] = {'h','e','l','l','o'};
cout << msg << endl;
结果输出:
hello 烫烫烫烫烫
由于缺少结束符,cout 操作输出了一段代码,如果在其他的场合犯上同样的错误可能会闯下更大的祸如:带来程序非法关闭。
2.不够安全,容易引起内存越界和泄漏
字符数组毕竟还是数组,可能有内存越界错误。一个字符型指针必须指向合理合法的位置,否则很危险。例:
char *msg;
strcpy(msg,"hello");//危险
要用好strcpy必须这样操作:
char msg[10];
strcpy(msg,"hello");
但如果这样用还是危险--- strcpy(msg,"hello,world");//长度超长
常见的操作是定义一个常量,如_MAX_MSG ,它的值作为数组长度。
3.不便复制与串接
字符串操作在标准c里不可直接用加减符号,在c++里有对加减的重载。
二.命名规则:
1使用合适的域操作符,一条很好的建议就是在全局标识符前面统一加上域作用符“::”,如::MessageBox(),
它就表明用的是windows API 中定义的全局函数;此外,在引用基类成员变量或是函数时,如果该标识符被重载或者覆盖,最好加上域作用符。
2.类的私有数据成员的标示符可以附以下画线前缀“_”。如:_name;这样至少让使用该类的程序员感觉的不舒服,从而提醒他不要直接使用该成员。
三.为了程序运行的效率,编译器在一定的优化设置下可能对里面的成员排放位置做了一些调整,使得整个结构体的大小为一个字长的整数倍,这就是所谓的对齐。
所以siziof()结构体的结果是根据编译器而定的,编程需谨慎。
相关文章推荐
- 做软件实施工程师的一点建议
- 对于刚开始学习Java的人一点建议
- 对互联网专业研究生的一点建议
- 关于嵌入式系统日志打印的一点建议
- 新手提升JSP技术能力的一点建议(转老紫竹)
- 给那些想进BI/DW领域新人的一点建议。
- 一点建议改善管理行为
- 写给学生朋友的一点建议-----面试腾讯有感
- VC中数字格式化为字符串的一点心得
- 给所有ActionScript初学者的一点建议 经典
- 给还在淘宝刷钻的刷手们一点建议
- 关于初学者该选择学习ARM7还是ARM9的一点建议
- 对在校本科毕业生的一点应聘建议
- 给想当程序员的大学生的一点建议
- 用VC++写ISAPI的一点经验
- 关于华为机试的一点建议
- [转载]关于面试服装的一点建议
- BFS提高效率的一点建议