最近拜读某大牛的关于性能的blog,看到如下文字
还有一个例子是,我以前从事的某个产品编程规范中有一条是要在每个函数中把函数名定义出来,如:const char fname[]=”functionName()”, 这是为了好打日志,但是为什么不声明成 static类型的呢?
说实话,声明称static 倒是增加了一点危险,因为可能存在重新声明同名变量的可能性。
如果是我做一般写成 const char * fname="unctionName()"
有两个好处:
1 因为char * 程序启动直接加载,不用像char fname[] 重新分配内存,加载速度变快。
2 char * 因为在程序只读区中,不用担心会有任何修改。
我又看了以前gooogle的c++代码,
以前我是这样写的
#define ADAPTER_KEY "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
#define NETWORK_CONNECTIONS_KEY "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
后来全部改为
static const TCHAR* kSessionManagerKey =
_T("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager");
static const TCHAR* kPendingFileRenameOps = _T("PendingFileRenameOperations");
阅读(2264) | 评论(0) | 转发(0) |