产生方法:
void printHandler(int value){
log("printHandler:%d",value);
}
调用:
char *p = nullptr; generateChar(p); free(p);
产生方法:
void printHandler(int value){
log("printHandler:%d",value);
}
调用:
char *p = nullptr; generateChar(p); free(p);
类定义如下:
struct TestData {
TestData(bool *value) {
m_pValue = value;
}
~TestData() {
*m_pValue = false;
}
bool *m_pValue;
};
判断方法:
bool isValid = true;
{
TestData v(&isValid);
}
if (isValid) {
CCLOG("Exit");
}
else {
CCLOG("Not Exit");
}
// 通常的代码逻辑:
bool Execute()
{
// 分配资源
int *p = new int;
bool bOk(true);
// 执行并进行错误处理
bOk = func1();
if(!bOk)
{
delete p;
p = NULL;
return false;
}
bOk = func2();
if(!bOk)
{
delete p;
p = NULL;
return false;
}
bOk = func3();
if(!bOk)
{
delete p;
p = NULL;
return false;
}
// ..........
// 执行成功,释放资源并返回
delete p;
p = NULL;
return true;
}`
优化后:
`bool Execute()
{
// 分配资源
int *p = new int;
bool bOk(true);
do
{
// 执行并进行错误处理
bOk = func1();
if(!bOk) break;
bOk = func2();
if(!bOk) break;
bOk = func3();
if(!bOk) break;
// ..........
}while(0);
// 释放资源
delete p;
p = NULL;
return bOk;
}
#Emacs配置
Windows:
C:\Users\sloppy\AppData\Roaming.emacs
如果没有,新建一个
cmd>touch .emacs ,内容如下:
(load-file "C:/Soft/emacs-bin-w64-20150818-07ebe42/config/.emacs")>加载自定义的配置文件路径:
(setq x-select-enable-clipboard t) (require 'linum) (global-linum-mode 1) (tool-bar-mode 0) (menu-bar-mode 0) (scroll-bar-mode 0) (set-background-color "black") ;; (set-foreground-color "white") ;; 使用白色前景 (set-face-foreground 'region "green") ;; 区域前景颜色设为绿色 (set-face-background 'region "blue") ;; 区域背景色设为蓝 (setq user-full-name "sloppy") (setq user-mail-address "coolexp@qq.com") ;; 设置tab为4个空格的宽度,而不是原来的2 (setq c-basic-offset 4) (setq default-tab-width 4) (setq-default indent-tabs-mode nil) (global-set-key [C-f4] 'kill-this-buffer) ;scroll other window (global-set-key (kbd "C-c C-v") 'scroll-other-window) (global-set-key (kbd "C-c C-b") 'scroll-other-window-down) (setq frame-title-format "Welcome to Emacs world! ") (setq inhibit-startup-message t) (global-set-key (kbd "C-j") 'goto-line) (setq indent-tabs-mode nil) (setq default-tab-width 4) (setq tab-width 4) (toggle-frame-maximized) (setq make-backup-files nil) (setq org-todo-keywords '((type "TODO" "STARTED" "WAITING" "|" "DONE" "CANCELLED")))