随笔分类 -  C

摘要:````C++ include include using namespace std; LARGE_INTEGER MilliSecondTimeStamp() { LARGE_INTEGER m_liPerfStart = { 0 }; QueryPerformanceCounter(&m_li 阅读全文
posted @ 2018-04-18 17:54 drfxiaoliuzi 阅读(466) 评论(0) 推荐(0)
摘要:背景知识 字符是人们认识世界,用来标记的符号。但是计算机并不认识这些字符。 所以需要对这些字符进行编号,这样,字符与编码之间就形成了映射关系。当你输入65的时候,计算机才能识别,你其实想表达的是'A'. 常见的字符集:ANSI字符体系,Unicode字符体系 ANSI体系:ASCII字符集、GB23 阅读全文
posted @ 2017-12-06 10:55 drfxiaoliuzi 阅读(1393) 评论(0) 推荐(0)
摘要:引言 为了代码的复用性和模块化,我们常常使用一些库文件,在Windows操作系统下位.lib .dll作为静态库和动态库的后缀名。 在Linux下,静态链接库名字一般为libabcdef.a,其中abcdef为该lib的名称 动态链接库名字一般为libabcde.so.major.minor,abc 阅读全文
posted @ 2017-10-23 17:17 drfxiaoliuzi 阅读(526) 评论(0) 推荐(0)
摘要:问题初始来源:如何把一个数据按照字节,存储到一个char类型,长度为4的字符串数组中。 就是普通 的一个整数(可能为负数),这个整数占用4个字节空间 如何存储到char类型的字符型数组里面,再按照单个字节读取的形式,在电脑本地,将数据读取出来。 比较简单粗暴的方法: 1.循环读取,每次把整数的最小8 阅读全文
posted @ 2017-02-20 21:45 drfxiaoliuzi 阅读(1318) 评论(0) 推荐(0)
摘要:在总结typedef之前,先了解一个专业术语: 常量指针 (const pointer):常量指针在定义的时候必须被初始化,而且一旦初始化完成,则它的值就不能再改变。 1.typede是什么。 类型别名 (type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它可以让复杂的 阅读全文
posted @ 2016-10-27 13:07 drfxiaoliuzi 阅读(675) 评论(0) 推荐(0)
摘要:下载并编译libuv libuv需要自己手动下载源码,并手动编译。 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $git clone https://github.com/libuv/libuv.git 即可下载到l 阅读全文
posted @ 2016-09-18 11:52 drfxiaoliuzi 阅读(11165) 评论(0) 推荐(0)
摘要:栈上的内存,函数结束的时候这个函数用的内存自动释放;堆上的内存,你必须自己释放,否则就会一直存在,但程序退出时,操作系统会清理进程使用的所有资源,这是就会释放掉堆,堆都没了,内存自然也没了问题在于,很多时候进程并不会马上退出,比如服务器程序一跑就是几个月,如果分配的那块代码只跑一次那还好,但通常会反 阅读全文
posted @ 2016-08-11 15:11 drfxiaoliuzi 阅读(1675) 评论(0) 推荐(0)
摘要:csapp.h其实就是一堆头文件的打包,在http://csapp.cs.cmu.edu/public/code.html 这里可以下载。这是《深入理解计算机系统》配套网站。 在头文件的#end if前面加上一句#include “csapp.c”,因为那个头文件要把csapp.c文件包含了进去. 阅读全文
posted @ 2016-05-11 19:38 drfxiaoliuzi 阅读(1816) 评论(0) 推荐(0)
摘要:什么是rpc框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个php中的方法,比如这样一个函数方法: localAdd(10, 20),localAdd方法的具体实现要么是用户自己定 阅读全文
posted @ 2016-02-23 20:22 drfxiaoliuzi 阅读(594) 评论(0) 推荐(1)
摘要:回调函数比喻: 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。 在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调 阅读全文
posted @ 2015-11-28 15:28 drfxiaoliuzi 阅读(3449) 评论(0) 推荐(0)
摘要:理解所有分析过程的代码段 Page71(中文版) 你可以轻松地编写一个能够分析C语言的声明并把他们翻译成通俗语言的程序。事实上,为什么不?C语言声明的基本形式已经描述清楚。我们所需要的只是编写一段能够理解声明的形式并能够以图3 3的方式对声明进行分析的代码。为了简单起见,暂且忽略错误处理,而且在... 阅读全文
posted @ 2015-10-20 23:40 drfxiaoliuzi 阅读(495) 评论(0) 推荐(0)
摘要:最近看《Linux C程序设计大全》这本书,虽然书中有一些错误,但整体来说,书写得还算可以。当看到网络编程【第23.2.4小节获得主机信息】时,遇到了一段代码,原文如下:“一台主机有许多和网络相关的信息,例如,主机名称、IP地址、主机提供的服务等。这些信息一般都保存在系统中的某个文件里(例如/etc... 阅读全文
posted @ 2015-09-09 22:03 drfxiaoliuzi 阅读(2195) 评论(0) 推荐(0)
摘要:在面试中经常会被问道memcpy与memove有什么区别? 整理如下: 其实主要在考C的关键字:restrict C库中有两个函数可以从一个位置把字节复制到另一个位置。在C99标准下,它们的原型如下: void * memcpy(void * restrict s1, const void * re 阅读全文
posted @ 2015-08-04 13:42 drfxiaoliuzi 阅读(1789) 评论(0) 推荐(0)
摘要:1 #include 2 /* 3 * 顺序表最多输入N个数 4 */ 5 #define N 10 6 #define OK 1 7 #define ERROR -1 8 9 10 struct sequeuelist { 11 int *elem; 12 int length; 13 int listsize; ... 阅读全文
posted @ 2015-07-31 09:13 drfxiaoliuzi 阅读(253) 评论(0) 推荐(0)
摘要:有时候必须非常专注地阅读ANSI C标准才能找到某个问题的答案。一位销售工程师把下面这段代码作为测试用例发给Sun的编译小组。foo(const char **p){}int main(int argc, char **argv){ foo(argv); return 0;}如果编译这段... 阅读全文
posted @ 2015-07-27 14:57 drfxiaoliuzi 阅读(323) 评论(0) 推荐(0)
摘要:【问题】 2015/7/3 14:29:49 typedef struct T{ union { struct T* (*v)(const *[]); const * const r; };}const*(*(*(*(*v)[1])[1])(struct { const c;}*(*)(struct 阅读全文
posted @ 2015-07-04 14:12 drfxiaoliuzi 阅读(183) 评论(0) 推荐(0)
摘要:1-6#include int main(void){printf("getchar()!=EOF is:%d\n", getchar()!=EOF);return 0;} 编译后当输入Ctrl+D的时候,输出:getchar()!=EOF is: 0输入其他值时,输出getchar()!=EOF... 阅读全文
posted @ 2014-12-12 10:41 drfxiaoliuzi 阅读(311) 评论(0) 推荐(0)
摘要:1 hello world 阅读全文
posted @ 2014-06-16 14:35 drfxiaoliuzi 阅读(99) 评论(0) 推荐(0)