(C)do{...}while(0);的用法及意义】的更多相关文章

实际上,do{…}while(0)的作用远大于美化你的代码. 总结起来这样写主要有以下几点好处: 1. 辅助定义复杂的宏 避免引用的时候出错: 举例来说,假设你需要定义这样一个宏: #define DOSOMETHING()\ foo1();\ foo2(); 这个宏的本意是,当调用DOSOMETHING()时,函数foo1()和foo2()都会被调用.但是如果你在调用的时候这么写: if(a>0) DOSOMETHING(); 因为宏在预处理的时候会直接被展开,你实际上写的代码是这个样子的:…
linux find命令中-print0和xargs中-0的用法. 1.默认情况下, find命令每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此find 的输出都是一行一行的: [bash-4.1.5] ls -l total 0 -rw-r--r-- 1 root root 0 2010-08-02 18:09 file1.log -rw-r--r-- 1 root root 0 2010-08-02 18:09 file2.log[bash-4.1.5] find .…
零.导引第一次见到 do{...}while(0)是在学习libevent的时候,看到里面有很多类似#define TT_URI(want) do { \ char *ret = evhttp_uri_join(uri, url_tmp, sizeof(url_tmp)); \ tt_want(ret != NULL); \ tt_want(ret == url_tmp); \ if (strcmp(ret,want) != 0) \ TT_FAIL(("\"%s\" !=…
Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于external/json下. rapidjson 项目地址:http://code.google.com/p/rapidjson/wiki:http://code.google.com/p/rapidjson/wiki/UserGuide 下面就通过实例代码讲解rapidjson的用法. 使用rapidjson解析json串 引入头文件 1 2 #include "json/rapidjson.h" #inc…
basename 从文件名中去掉路径信息, 只打印出文件名. 结构 basename $0 可以让脚本知道它自己的名字, 也就是, 它被调用的名字. 可以用来显示用法信息, 比如如果你调用脚本的时候缺少参数, 可以使用如下语句: echo "Usage: `basename $0` arg1 arg2 ... argn" $0 $0显示会包括当前脚本或命令的路径 dirname 从带路径的文件名中去掉文件名, 只打印出路径信息. basename 和 dirname 可以操作任意字符串…
Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于external/json下. rapidjson 项目地址:http://code.google.com/p/rapidjson/wiki:http://code.google.com/p/rapidjson/wiki/UserGuide 下面就通过实例代码讲解rapidjson的用法. 使用rapidjson解析json串 引入头文件 #include "json/rapidjson.h" #include…
git tag 介绍 命令是用来给当前项目状态(在某次commit后)打标签的,目的是便于以后将项目状态回滚到当时打标签的状态.可以把它与虚拟机的snapshot(快照)进行类比. 回想当时在看<Flask Web开发:基于python的Web应用开发实战>一书时,作者提供了一个在github上的flasky项目源码,git clone下来后,作者在不同的章节会让切换到不的tag,方便教学,这也许是tag的另外一个用处. 下面以tool项目为例,简单介绍一下git tag 的相关用法: 1.查…
父类:public class BaseHibernateDaoSupport<T>{ private Class<T> entityClass; public BaseHibernateDaoSupport() { entityClass = (Class<T>) ((ParameterizedType) getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; }} public BaseHib…
最近学习Android开发,照着视频开发新浪微博,但是视频里的介绍的是OAuth1.0的授权方式,试了半天发现用不了. 原来现在一般没审核的用户只能使用OAuth2.0了,视频教学里的方法已经过时了.于是只好自己研究如何进行微博认证. OAuth2.0的授权过程 说白了,就是请求获取Grant Code→使用Grant Code申请Access Token→以后就使用这个Access Token获取微博的服务,这比OAuth1.0的授权方式简化了不少. 如果不使用别的第三方OAuth认证的库或者…
href=”javascript:void(0);”这个的含义是,让超链接去执行一个js函数,而不是去跳转到一个地址,而void(0)表示一个空的方法,也就是不执行js函数. 为什么要使用href=”javascript:void(0);” javascript:是伪协议,表示url的内容通过javascript执行.void(0)表示不作任何操作,这样会防止链接跳转到其他页面.这么做往往是为了保留链接的样式,但不让链接执行实际操作, <a href="javascript:void(0)…
typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) { NSStringDrawingUsesLineFragmentOrigin = << , // 整个文本将以每行组成的矩形为单位计算整个文本的尺寸 // The specified origin is the line fragment origin, not the base line origin NSStringDrawingUsesFontLeading = <<…
vue 1.x 的写法在  vue 2.x版本已经废除 vue 1.x 写法 <body> <div id="app"> {{message | capitalize | ...}} </div> <script> new Vue({ el:'#app', data:{ message:"message" } }) </script> </body> 上面代码输出:"Message&q…
版权声明:本文为博主原创文章,未经博主允许不得转载. 今天在看一段代码时出现了用结构体实现变长数组的写法,一开始因为忘记了这种技术,所以老觉得作者的源码有误,最后经过我深思之后,终于想起以前看过的用struct实现变长数组的技术.下面是我在网上找到的一篇讲解很清楚的文章. 在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组.此时,我们可以使用结构体的方法实现C语言变长数组. struct MyData { int nLen; char data[0];}; 在结构中,data…
html: <div id="demo"> <button v-on:click="show = !show"> Toggle </button> <transition name="fade"> <p v-if="show">hello</p> </transition> </div>   data:{ return { show…
比如我们在创建int的时候会使用int(10)这样的方式来定义某一个列,但是这样定义是没有任何意义的. Create Table showzerofill(Val1 INT(5) ZEROFILL, Val2 INT(5)); Insert into showzerofill(Val1, Val2) values(1,1>,<12,12>,<123,123>,<1234,1234>,<12345,12345>; Select * from showze…
随着vue越来越火,而vue-router却是一个项目不可或缺的,所以在这里结合实例总结一下router的用法,也是给自己的一个总结. 1.首先第一步当然是安装vue-router依赖,当然也可直接script引用.接着新建一个router文件下新建一个index.js,这个文件主要用于配置路由.index.js代码如下: import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const Recommend =…
Oracle临时表可以说是提高数据库处理性能的好方法,在没有必要存储时,只存储在Oracle临时表空间中.希望本文能对大家有所帮助. 1 .前言 Oracle Logo 目前所有使用 Oracle 作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量. 当然在 Oracle 中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得…
问题一 msflexgrid 根据行数或列数的大小,滚动条的滚动块长度怎么改变,发现滚动条很不好用,很小…
问题一 VB 去掉字符串的头尾的空格 使用trim() 如: trim(" hello world ")= "hello world" 问题二 判断一个字符串是否是 一行空格 解决方法,去掉头部和尾部的所有空格没然后,得到新的字符串,看此字符串的长度 使用Len 得到长度…
把表头和数据联系起来:scope,id,headers属性就我用到现在,很多表格要比上面提供的例子复杂的多.让例子复杂一点,我会移去"Company"表头,并且把第一列的数据移到表头单元格里: <table summary="The number of employees and the foundation year of some imaginary companies."> <caption>Table 1: Company data&…
学习vue.js也有一段时间了,关于slot这一块,也看了不少次了,总感觉有点迷迷糊糊,不知其然也不知其所以然,抽出一段完整的时间,再一次仔细学习.稍微有点理解了,在此稍作记录,好记性不如烂笔头嘛! vue关于实现slot的原因也给与了解释: 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为内容分发 (即 Angular 用户熟知的“transclusion”). Vue.js 实现了一个内容分发 API,参照了当前 Web Components 规范草案…
第一步:引包两个 命令:cnpm i -S react-router react-router-dom 第二步:用路由管理APP页面 1.创建主路由管理页面,在这里使用了路由嵌套 import React, { Component } from 'react'; import { Route, BrowserRouter } from 'react-router-dom' import App from '../App' import SubRouter from './SubRouter' /…
摘要:今天我们结合代码实例来具体看一下C#4.0中的四个比较重要的特性. 之前的文章中,我们曾介绍过C#的历史及C# 4.0新增特性,包括:dynamic. 命名和可选参数.动态导入以及协变和逆变等.今天我们结合代码实例来具体看一下C#4.0中的四个比较重要的特性. 1.dynamic ExpandoObject 熟悉js的朋友都知道js可以这么写 : var t = new Object(); t.Abc = ‘something’; t.Value =243; 现在这个js动态语言的特性,我…
转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/5925923.html 学习这个xargs花了很长时间,在网上翻了很久也查了很多书关于xargs的介绍,都只是简单的介绍了它的几个用法,却没有介绍它工作的原理,man也只有简单的介绍,并没有说各个选项之间配合时的情况.所以我只能自己探索了,探索的路上确实充满了荆棘,不断的总结却不断的被实验推翻,每当以为自己得出了结论,却往往发现不够完善,所以我自己也是边测试边删改完成这篇学习记录,但是不得不说这过程充满了…
标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0.1.0a还是2.0,单看版本号就让人神伤. 对接过各类开放平台的朋友对OAuth应该不会陌生.当年我小试了下淘宝API,各种token.key.secret.code.id,让我眼花缭乱,不明所以,虽然最终调通,但那种照猫画虎的感觉颇不好受.最近公司计划,开放接口的授权协议从1.0升到2.0,这个任…
VLOOKUP函数是Excel中几个最重函数之中的一个,为了方便大家学习,兰色幻想特针对VLOOKUP函数的使用和扩展应用,进行一次全面综合的说明.本文为入门部分 一.入门级 VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回忆要查找到的值.它的基本的语法为: VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找) 以下以一个实例来介绍一下这四个參数的使用 例1:例如以下图所看到的,要求依据表二中的姓名,查找姓名所相应的年龄. 公式:B13 =VLO…
1什么是 Flexbox 简单来说 Flexbox 是属于web前端领域CSS的一种布局方案,是2009年W3C提出了一种新的布局方案,可以简便.完整.响应式地实现各种页面布局,并且 React Native 也是使用的 Flex 布局. 你可以简单的理解为 Flexbox 是CSS领域类似 Linearlayout 的一种布局,但是要比 Linearlayout 要强大的多. 2什么是 FlexboxLayout? 刚才说了 Flexbox 是CSS领域的比较强大的一个布局,我们在 Andro…
使用DotNetOpenAuth搭建OAuth2.0授权框架 标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0.1.0a还是2.0,单看版本号就让人神伤. 对接过各类开放平台的朋友对OAuth应该不会陌生.当年我小试了下淘宝API,各种token.key.secret.code.id,让我眼花缭乱,不明所以,虽然最终调通,但那种照猫画虎的感觉颇不好…
1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 :   1 var t = new Object(); 2 t.Abc = ‘something’; 3 t.Value = 243; 现在这个js动态语言的特性,我们也可以在c#中使用了,前提是将一个变量声明为ExpandoObject类型.如下例:   1 static void Main(string[] args) 2 3 dynamic t = new ExpandoObject(); 4 t.Abc =…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 学习这个xargs花了很长时间,在网上翻了很久也查了很多书关于xargs的介绍,都只是简单的介绍了它的几个用法,却没有介绍它工作的原理,man也只有简单的介绍,并没有说各个选项之间配合时的情况.所以我只能自己探索了,探索的路上确实充满了荆棘,不断的总结却不断的被实验推翻,每当以为自己得出了结论,却往往发现不够完善,所以我自己也是边测试边删改完成这篇学习记录,但是不得不…