2014年4月7日

如何查找在CDN下的真实ip

摘要: 今天去找了一下www.bilibili.tv的IP(为什么要这样子做见),发现www.bilibili.tv使用了CDN服务直接ping找不到其真实IP(实际上不用找也可以但就是想找一下)。那我们应该怎么样去找CDN下的真实IP呢?我们先来看一下直接ping是什么样子的。可以看到我们ping到的IP是183.61.9.45,CDN对域名解析过程进行了调整,识别到的是bilibili.hdsld.com,是bilibili.tv的一个CNAME记录。根据网上的方法,我找到如下途径去解决这个问题方法一:ping bilibili.tv原因是www.bilibili.tv 和 bilibili.tv 阅读全文

posted @ 2014-04-07 20:11 kirito 阅读(24494) 评论(2) 推荐(0) 编辑

2014年4月6日

作弊的2048,有了它16384绝对不是梦想

摘要: 因为有同学说完2048经常遇到坑爹情况,今天下午特地做了一个作弊版的2048,在这里先放上游戏,具体开发使用了自己写的一个2D游戏库,因为很久没有用了,因此为了方便就直接游戏代码放在了游戏库代码下,具体代码和游戏库将在以后贴上。S:保存 L:载入 Backspace:回退(最多回退两步) 上下... 阅读全文

posted @ 2014-04-06 00:16 kirito 阅读(2040) 评论(1) 推荐(0) 编辑

2014年4月1日

C++11智能指针

摘要: 今晚跟同学谈了一下智能指针,突然想要看一下C++11的智能指针的实现,因此下了这篇博文。以下代码出自于VS2012 1 template 2 class shared_ptr 3 : public _Ptr_base 4 { // class for reference counted resource management 5 public: 6 typedef shared_ptr _Myt; 7 typedef _Ptr_base _Mybase; 8 9 shared_ptr() _NOEXCEPT 1... 阅读全文

posted @ 2014-04-01 11:40 kirito 阅读(2297) 评论(3) 推荐(1) 编辑

2014年3月26日

关于C++string的长度陷阱

摘要: std::string s = ...;..... assert(s.length() == strlen(s.c_str()));一般认为这段代码是不会断言失败的,但是实际上这段代码可能是会断言失败的std::string s = "ABCD"; s[2] = '\0'; std::cout <<... 阅读全文

posted @ 2014-03-26 02:03 kirito 阅读(2373) 评论(2) 推荐(0) 编辑

2014年3月17日

LLVM language 参考手册 翻译停止相关

摘要: 再翻译LLVM language 参考手册的时候,个人感觉很多东西都不是很懂,因此打算学习完编译原理后再去继续研究翻译,多有不便望见谅 阅读全文

posted @ 2014-03-17 16:12 kirito 阅读(279) 评论(0) 推荐(0) 编辑

C++使用类型代替枚举量

摘要: 自己写的C++类型枚举量,可以使用类型识别取代模板,绑定枚举量和多组调用函数,在调用阶段只要指定某组函数就可以根据枚举量调用相应函数。代码如下:#ifndef __MYENUM_H__#define __MYENUM_H__namespace MyEnum { #include //------------------------------------------------------ EnumFunction ------------------------------------------// /** 绑定序号和函数对象 */ template cla... 阅读全文

posted @ 2014-03-17 16:09 kirito 阅读(752) 评论(0) 推荐(1) 编辑

2014年3月2日

LLVM language 参考手册(译)(6)

摘要: 模块级内联汇编(Module-Level Inline Assembly)模块包含“module-level inline assembly”块,这与GCC中的“file scope inline asm”块的相同的。这些块将被LLVM内部链接并当作一个单独的单元,但如果希望的话,它们在.ll 文件中可以是分开的。它的语法十分简单:module asm "inline asm code goes here"module asm "more can go here"这个字符串可以通过非输出字符转义包含任意字符。这个转义序列是“\xx”形式的,这个“xx”是 阅读全文

posted @ 2014-03-02 01:43 kirito 阅读(1395) 评论(1) 推荐(1) 编辑

2014年3月1日

LLVM language 参考手册(译)(5)

摘要: 垃圾回收器名称(Garbage Collector Names)每一个函数可以制定一个垃圾回收期的名称,这个名称是一个简单的字符串:define void @f() gc "name" { ... }编译器声明了这个名字的可能值。指定一个收集器将会导致编译器会为了支持这个垃圾回收算法修改它的输出。前置数据(Prefix Data)前置数据是一种与函数相关的数据,在函数主体之前代码生成器会马上发散这种数据。这个特性的目的是为了让允许在前端分配语言指定的在指定函数中运行期元数据,并且可以通过函数指针来获得这个数据的同时这个函数指针仍然是可调用的。对一个给定的函数来访问这个数据, 阅读全文

posted @ 2014-03-01 16:43 kirito 阅读(1419) 评论(0) 推荐(0) 编辑

2014年2月26日

LLVM language 参考手册(译)(4)

摘要: 函数(Functions)LLVM函数定义由“define” 关键字,一个可选的链接标识,一个可选的可见性模式,一个可选的DLL存储类别,一个可选的调用约定,一个可选的unnamed_addr属性,一个返回值类型,一个可选的返回值的参数属性,一个函数名,一个(可能为空的)实参列表(每一个都带有可选的参数属性),可选的函数属性,一个可选的section,一个可选的对齐属性,一个可选垃圾回收期的名字,一个可选的前缀,一个左花括号,一个基本块列表和一个右花括号。LLVM函数声明由“declare” 关键字,一个可选的链接标识,一个可选的可见性模式,一个可选的DLL存储类型,一个可选的调用约定,一个可 阅读全文

posted @ 2014-02-26 23:03 kirito 阅读(1569) 评论(0) 推荐(1) 编辑

LLVM language 参考手册(译)(3)

摘要: 可见性模式(Visibility Styles)所有全局变量和函数具有以下的可见性模式之一:“default” - Default style在那些使用ELF object file格式的平台(targets),默认可见性意味着声明对于其他模块是可见的,并且在可共享库,意味着这个声明的实体是可被覆盖的。在Darwin平台,默认可见性意味着声明对于其他模块是可见的。默认可见性与在这种语言中的 “externallinkage” 是一致的。“hidden” - Hidden style一个对象的带有hidden可见性的两个声明,如果它们是处于一个相同的可共享单元(shared object),那么 阅读全文

posted @ 2014-02-26 00:22 kirito 阅读(1450) 评论(0) 推荐(0) 编辑

导航