C++是c的优化

原创 2004年08月05日 22:13:00

1.c++中我们提倡使用const char * const authorName = "Scott Meyers";这样的方式,对于指针我们要使指针本身常量化,也要使指针所指的变量常量化。这就是上面这样做的原因。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

2.对于define所造成的混乱:

#define max(a,b) ((a) > (b) ? (a) : (b))

int a = 5, b = 0;

max(++a, b);// a 的值增加了2

max(++a, b+10); // a 的值只增加了1

内联函数解决了这个问题:

template<class T>

inline const T& max(const T& a, const T& b)

{ return a > b ? a : b; }

 

3. string *stringarray1 =static_cast<string*>(malloc(10 * sizeof(string)));

string *stringarray2 = new string[10];

其结果是,stringarray1确实指向的是可以容纳10string对象的足够空间,但内存里并没有创建这些对象。而且,如果你不从这种晦涩的语法怪圈(详见条款m4m8的描述)里跳出来的话,你没有办法来初始化数组里的对象。换句话说,stringarray1其实一点用也没有。相反,stringarray2指向的是一个包含10个完全构造好的string对象的数组,每个对象可以在任何读取string的操作里安全使用。

newdeletemallocfree混在一起用也是个坏想法。对一个用new获取来的指针调用free,或者对一个用malloc获取来的指针调用delete,其后果是不可预测的。大家都知道不可预测的意思:它可能在开发阶段工作良好,在测试阶段工作良好,但也可能会最后在你最重要的客户的脸上爆炸。

如果你调用new时用了[],调用delete时也要用[]。如果调用new时没有用[],那调用delete时也不要用[]

C/C++代码优化的27个建议

本文由 伯乐在线 - 周昌鸿 翻译自 cs.clemson.edu。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 1. 记住阿姆达尔定律: funccost是函数func运行时间百分比...
  • wind19
  • wind19
  • 2014年05月26日 10:09
  • 1272

c/c++性能优化--- cache优化的一点杂谈

之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论。笔者有幸阅读过IBM某个项目的框架代...
  • wangjiaoyu250
  • wangjiaoyu250
  • 2013年07月01日 12:53
  • 12466

C/C++ Volatile关键词深度剖析

本文转载自 http://hedengcheng.com/?p=725 背景 前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议...
  • c359719435
  • c359719435
  • 2016年05月24日 14:42
  • 650

c/c++性能优化--I/O优化(上)

这节本想直接介绍I/O优化的,后来思考一下有必要对常用的I/O操作函数的特点介绍一下,这样要好些。下面就先介绍和I/O有关的库函数(以C99为准) 不同的操作系统有不同的文件管理方式,现行的主要有FA...
  • wangjiaoyu250
  • wangjiaoyu250
  • 2013年07月14日 22:52
  • 3147

浅谈C\C++代码优化中的一些小技巧

转自: 编写C\C++程序快两年,对于代码优化有很深的感触。个人认为,代码优化是一门很深的学问,而作为码农,我们总是在实践中不断更新自己对它的认识和理解。对于这个很大很深的问题,我只是根据自己的...
  • j_study
  • j_study
  • 2014年05月12日 09:14
  • 1541

C/C++代码优化方案

目录1、选择合适的算法和数据结构 3 2、使用尽量小的数据类型 3 3、减少运算的强度 3 (1)查表 3 (2)求余运算 4 (3)平方运算 4 (4)用移位实现乘除法运...
  • jinzhichaoshuiping
  • jinzhichaoshuiping
  • 2016年11月29日 21:34
  • 1164

C++返回值优化

当函数需要返回对象时,通常有两种写法,一种是直接在return语句中返回一个对象,一种是先构造好一个对象,然后在return中将其返回。以下代码为例: #include #include usin...
  • ww32zz
  • ww32zz
  • 2015年11月30日 16:19
  • 639

C++程序常见的性能调优方式

转载自:http://www.708luo.com/?p=36 冗余的变量拷贝 相对C而言,写C++代码经常一不小心就会引入一些临时变量,比如函数实参、函数返回值。在临时变量之外,也会有其他一些情...
  • sole_cc
  • sole_cc
  • 2015年07月06日 20:22
  • 933

C/C++语言执行效率的优化方法(待续)

个人总结,也可能和编译器与环境有关,没有绝对!下边以linux系统、AT&T指令集、GCC编译器为编译运行环境。 1.循环条件和下标的设立,尽量迁就下标操作,下标有加法的话,会增加计算偏移量...
  • huqinweI987
  • huqinweI987
  • 2016年03月13日 13:40
  • 962

C++程序栈与尾递归优化

如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在...
  • qq_35263706
  • qq_35263706
  • 2016年10月28日 13:44
  • 536
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++是c的优化
举报原因:
原因补充:

(最多只允许输入30个字)