<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[techx的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/techx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; techx]]></copyright><item><title><![CDATA[Visual Studio Linker Warning LNK4099]]></title><link>https://blog.youkuaiyun.com/techx/article/details/52591281</link><guid>https://blog.youkuaiyun.com/techx/article/details/52591281</guid><author>techx</author><pubDate>Tue, 20 Sep 2016 03:16:00 +0800</pubDate><description><![CDATA[在Visual Studio 下链接debug 版本的程序的时候，要求被链接的目标文件对应的pdb存在，这就要求依赖库在发布debug版本的时候也一并把pdb 文件发布。 如果链接的时候找不到pdb文件就会有这个Warning 消息跳出来。 那么链接器是怎么知道链接到哪个pdb文件的呢？ 参考MSDN上的这篇文章 . 可以知道链接的pdb文件名，但是需要注意的是，pdb文件名对于库里面的每个目标文件]]></description><category></category></item><item><title><![CDATA[VIM开发环境配置]]></title><link>https://blog.youkuaiyun.com/techx/article/details/51533117</link><guid>https://blog.youkuaiyun.com/techx/article/details/51533117</guid><author>techx</author><pubDate>Sun, 29 May 2016 19:48:00 +0800</pubDate><description><![CDATA[vim作为Linux系统下的开发神器，历史悠久. 在今天，vim还能不能继续发扬光大，这个不是这篇文章讨论的话题。 本文主要是记录在Linux下围绕vim的开发环境的配置，以便自己以后查询，也方便需要的朋友借鉴。vim插件管理系统vim的插件是vim生态系统的重要组成部分， 它的重要性就不说了。 一直以来vim都没有能够形成官方的统一的插件管理机制。取而代之的是， 用户首先将插件下载解压到 ~/.v]]></description><category></category></item><item><title><![CDATA[C++ function template name binding]]></title><link>https://blog.youkuaiyun.com/techx/article/details/51521076</link><guid>https://blog.youkuaiyun.com/techx/article/details/51521076</guid><author>techx</author><pubDate>Sat, 28 May 2016 04:02:18 +0800</pubDate><description><![CDATA[为了简化讨论，本文仅对函数模板的的名称绑定进行总结概括，关于类模板的相关内容，以后再做讨论。Name BindingName Binding就是对模板定义中出现的名称（也称为构造’construct’,也包括操作符等），通过在相关的上下文中查询， 并绑定到声明的过程，比如，int all = 0;
template<typename T>
int sum(T* t, int s)
{
    for]]></description><category></category></item><item><title><![CDATA[C++11 Object初始化问题]]></title><link>https://blog.youkuaiyun.com/techx/article/details/50855046</link><guid>https://blog.youkuaiyun.com/techx/article/details/50855046</guid><author>techx</author><pubDate>Fri, 11 Mar 2016 12:21:14 +0800</pubDate><description><![CDATA[C++11 中 类实例的初始化问题比较复杂。 这里涉及到实例的类型， (static vs non-static), 有没有自定义构造函数等等。对于static类型(全局变量，namespace变量，类static数据成员，函数static局部成员），class内部的成员变量都会使用默认值初始化.    //Struct S1 w/o constructor
  struct S1 {]]></description><category></category></item><item><title><![CDATA[Bit field]]></title><link>https://blog.youkuaiyun.com/techx/article/details/50727528</link><guid>https://blog.youkuaiyun.com/techx/article/details/50727528</guid><author>techx</author><pubDate>Wed, 24 Feb 2016 01:35:05 +0800</pubDate><description><![CDATA[c 语言中的bit field 是一种节省内存的方式， 用于struct 或者 union 的成员变量的声明。基本的语法是：struct BF {
   ...
  type_specifier [declarator] : constant_expression;
   ...
};采用这样一种方式的好处是，我们可以明确地指定某一个成员变量在内存中占用的空间(constant_expression]]></description><category></category></item><item><title><![CDATA[Android ColorFilter and Tint]]></title><link>https://blog.youkuaiyun.com/techx/article/details/47664853</link><guid>https://blog.youkuaiyun.com/techx/article/details/47664853</guid><author>techx</author><pubDate>Fri, 14 Aug 2015 17:15:38 +0800</pubDate><description><![CDATA[概述关于Android ColorFilter 和 Tint之间的关系一直混淆不清。两者均是对显示的图片进行着色或者过滤。
  ColorFilter:  色彩过滤 
  Tint: 着色
从英文原意上来讲，似乎有些相似，而从实际的效果来讲也是一致的。Android 向导文档似乎对此也是一笔带过，不愿深入，让人有些摸不着头脑：
  With Android 5.0 (API level 21) an]]></description><category></category></item><item><title><![CDATA[Android Custom Views and XML attributes]]></title><link>https://blog.youkuaiyun.com/techx/article/details/47315339</link><guid>https://blog.youkuaiyun.com/techx/article/details/47315339</guid><author>techx</author><pubDate>Thu, 06 Aug 2015 13:23:11 +0800</pubDate><description><![CDATA[I’ve tried to follow the Google Android tutorials and documentation when it comes to creating your own custom views but… it’s lacking.  Thankfully the internet is full of information.  Here’s a few res]]></description><category></category></item><item><title><![CDATA[构造函数调用虚函数]]></title><link>https://blog.youkuaiyun.com/techx/article/details/47275915</link><guid>https://blog.youkuaiyun.com/techx/article/details/47275915</guid><author>techx</author><pubDate>Tue, 04 Aug 2015 14:06:02 +0800</pubDate><description><![CDATA[今天看android canvas 类的源代码看到 Canvas的构造函数之一： public class Canvas{
...
    public Canvas() {
        if (!isHardwareAccelerated()) {
            ...
        } else {
            ...
        }
    }    publi]]></description><category></category></item><item><title><![CDATA[search - binary search/sort tree]]></title><link>https://blog.youkuaiyun.com/techx/article/details/45052923</link><guid>https://blog.youkuaiyun.com/techx/article/details/45052923</guid><author>techx</author><pubDate>Wed, 15 Apr 2015 03:08:35 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "stdlib.h"
#include "string.h"//What is a Binary Sort Tree?
//1. A BST is either an empty tree or a binary tree with the following characteristics
//2. all elements on left]]></description><category></category></item><item><title><![CDATA[search - fibonacci search]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44742581</link><guid>https://blog.youkuaiyun.com/techx/article/details/44742581</guid><author>techx</author><pubDate>Mon, 30 Mar 2015 03:01:36 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"
#include "malloc.h"  #define MAX_LIST 50typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;//The key difference between Fibonacci search and]]></description><category></category></item><item><title><![CDATA[search - binary search]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44740211</link><guid>https://blog.youkuaiyun.com/techx/article/details/44740211</guid><author>techx</author><pubDate>Mon, 30 Mar 2015 01:32:21 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;int BinarySearch( SqList* L, int key )
{
    int low = 0;
    int high]]></description><category></category></item><item><title><![CDATA[sorting - merge sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44695669</link><guid>https://blog.youkuaiyun.com/techx/article/details/44695669</guid><author>techx</author><pubDate>Sat, 28 Mar 2015 03:45:25 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;enum MERGE_SORT_METHOD { RECURSE, ITERATE };void Merge( int src[], int]]></description><category></category></item><item><title><![CDATA[sorting - quick sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44605855</link><guid>https://blog.youkuaiyun.com/techx/article/details/44605855</guid><author>techx</author><pubDate>Wed, 25 Mar 2015 00:47:01 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 )
{
    if( in]]></description><category></category></item><item><title><![CDATA[sorting - shell sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44582731</link><guid>https://blog.youkuaiyun.com/techx/article/details/44582731</guid><author>techx</author><pubDate>Tue, 24 Mar 2015 02:52:10 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 )
{
    if( in]]></description><category></category></item><item><title><![CDATA[sorting - insert sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44579249</link><guid>https://blog.youkuaiyun.com/techx/article/details/44579249</guid><author>techx</author><pubDate>Tue, 24 Mar 2015 01:05:58 +0800</pubDate><description><![CDATA[include “stdio.h”include “string.h”define MAX_LIST 50typedef struct _SqList { 
    int data[MAX_LIST]; 
    int length; 
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 ) 
{ 
    if( in]]></description><category></category></item><item><title><![CDATA[sorting - select sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44576141</link><guid>https://blog.youkuaiyun.com/techx/article/details/44576141</guid><author>techx</author><pubDate>Tue, 24 Mar 2015 00:38:01 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 )
{
    if( in]]></description><category></category></item><item><title><![CDATA[Sorting - bubble sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44554993</link><guid>https://blog.youkuaiyun.com/techx/article/details/44554993</guid><author>techx</author><pubDate>Mon, 23 Mar 2015 02:12:50 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 )
{
    if( in]]></description><category></category></item><item><title><![CDATA[Sorting - heap sort]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44553651</link><guid>https://blog.youkuaiyun.com/techx/article/details/44553651</guid><author>techx</author><pubDate>Mon, 23 Mar 2015 01:37:21 +0800</pubDate><description><![CDATA[#include "stdio.h"
#include "string.h"#define MAX_LIST 50
typedef struct _SqList {
    int data[MAX_LIST];
    int length;
}SqList;void swap( SqList* L,  unsigned index1, unsigned index2 )
{
    if( in]]></description><category></category></item><item><title><![CDATA[运行时类型信息RTTI]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44462225</link><guid>https://blog.youkuaiyun.com/techx/article/details/44462225</guid><author>techx</author><pubDate>Thu, 19 Mar 2015 18:45:07 +0800</pubDate><description><![CDATA[我们在写C++代码的时候经常碰到使用dynamic_cast进行类型转换的情况，也都知道经过dynamic_cast的转换更加安全，因为dynamic_cast进行了类型检查。 但是可能很多人不知道dynamic_cast是C++ 运行时类型信息(RTTI)机制链条上的一个节点。 RTTI提供了两个操作符和一个类： 
dynamic_cast
typeid
type_info
整个RTTI， 作为一]]></description><category></category></item><item><title><![CDATA[关于CLASSPATH的一点感想]]></title><link>https://blog.youkuaiyun.com/techx/article/details/44415309</link><guid>https://blog.youkuaiyun.com/techx/article/details/44415309</guid><author>techx</author><pubDate>Wed, 18 Mar 2015 16:59:36 +0800</pubDate><description><![CDATA[前面的例子只涉及到一个HelloJava.java文件，所以也没有牵涉到classpath。但是实际的编程中不可能有这么简单的程序，因此也常常需要关注classpath的设定。oracle 官方文档对于classpath的定义是： 
  The class path is the path that the Java runtime environment searches for classes]]></description><category></category></item></channel></rss>