产生方法:
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")))