Sloppy's Blog


  • Home

  • About

  • Archives
Sloppy's Blog

一种误解的没有内存泄露的写法

Posted on 2016-06-06

产生方法:

void printHandler(int value){
  log("printHandler:%d",value);
} 

调用:

 char *p = nullptr;
generateChar(p);
free(p); 

Sloppy's Blog

判断类的析构

Posted on 2016-06-06

类定义如下:

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");
}

Sloppy's Blog

do...while(0)的妙用

Posted on 2016-06-06
// 通常的代码逻辑:
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;
}

Sloppy's Blog

Emacs简单配置

Posted on 2016-06-06

#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")))

1…56
Sloppy

Sloppy

54 posts
7 tags
© 2017 Sloppy
Powered by Hexo
Theme - NexT.Muse