• Q语言(准备工作)

    最近几天一直都在忙着公司的项目,所以时间也比较的少,但是我也会忙里偷闲,想一想这个被意淫中的脚本语言应该是如何工作的。 略懂编译原理的人都会知道,从脚本被作为字符流输入到最后被执行,通常都会经过词法分析,语法分析,语义分析,中间代码生成,中间代码优化,目标代码生成,然后与其他已经既存的被依赖的外部库进行链接,一起生成可执行代码(也就是机器所能识别的机器...阅读全文
    作者:quickphp | 分类:c | 阅读:185 views | 标签:
  • Q语言(写在前面的话)

    也许你要问我,这是个什么玩意儿,其实我只能告诉你,这也许只是一个解释性的脚本语言的名字。也许你会继续问,有什么特性?有文档吗?或者…? 我只能告诉你,我正在设计它,至于它会长什么样子,说实话,我也不知道。 但我可以告诉你的是,它很快就会来到你的面前,以一种你意想不到的方式。 阅读全文
    作者:quickphp | 分类:c | 阅读:1109 views | 标签:
  • C语言写的简单http服务器

    基于libevent实现的一个简单的http服务器,libevent的详细资料请查阅:http://libevent.org/,废话不多说,直接上代码。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <err.h> #include <event.h> #include <evhttp.h>   void httpd_handler(struct evhttp_request *req, void *arg) { struct evb...阅读全文
    作者:quickphp | 分类:c | 阅读:1606 views | 标签:, , ,
  • C语言写的简单队列(queue)

    队列在我们的日常应用中十分有用(比如邮件队列啊,任务队列啊等等之类的),其特性就是先进先出,从列尾将新的elements加入队列,而从列头取出elements,通常,队列可以看成是受限链表.写了一个简单的example. 代码如下: #include<stdio.h> #include<stdlib.h>   struct node{ int value; struct node * next; }; typedef struct queue{ struct node * head, ...阅读全文
    作者:quickphp | 分类:c | 阅读:1412 views | 标签:, ,
  • C语言直接访问与间接访问的内存分配细节

    在C语言中,直接访问与间接访问,其中关于分配的细节是不同的。通过直接访问的变量,在内存里只会有一块内存存储,而通过间接访问的变量等,不单要为其真实值分配内存,还要为其间接访问的如指针分配存储指针值的内存,多级间址访问就会分配多块内存给该段代码来使用。 直接看代码: #include <stdio.h>   int main() { int arr[2] = {1,2}...阅读全文
    作者:quickphp | 分类:c | 阅读:1410 views | 标签:, , ,
  • C语言内存管理

    今天看malloc等内存管理的函数,突然冒出个疑问,为什么我要用malloc呢? 我们经常看见的代码,来一段: #include <stdio.h>   int main(int argc,char *argv[]) { const char * p; p = "who am i?"; printf("%s\r\n",p); return 0; } 在这段代码里,我们声明了一个字符常量指针p,然后将其指向常量字符串”wh...阅读全文
    作者:quickphp | 分类:c | 阅读:1403 views | 标签:, , , ,
  • C语言写的万年历

    今日有群友问一万年历问题,大概需求是求得2012年以后的任意每月一号是星期几,因为其原先代码逻辑是有问题,闲来无事便随便写了写,代码如下: #include <stdio.h> #include <stdlib.h> int is_leap(int year) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { return 1; }else { ret...阅读全文
    作者:quickphp | 分类:c | 阅读:1399 views | 标签:,
  • int main(int argc,char *argv[]){}解惑

    #include <stdio.h>   int main(int argc,char *argv[]) { int a = 10; int * p = &a; printf printf("%d\r\n",*p); return 0; } 基于对int,char,float,double等基本类型的指针理解,我始终无法理解为什么argv作为一个指针数组,那么求得其第一个数组元素的不是*argv[0]而是argv[0]本身。可是当我看完下面的代码后,我恍然...阅读全文
    作者:quickphp | 分类:c | 阅读:1392 views | 标签:, ,
  • 堆,栈及程序内存分配

    0)在谈及这个问题之前,我们先要明确一点,堆,栈是两个不同的概念,尽管因为历史的原因,通常我们把堆栈连在一起来讲。同时,这里的堆,栈,分两个层面,在计算机物理内存(比如通常的RAM)里,它表示的是数据区域,而在数据结构上,他表示的是一种数据组织的结构。物理内存里的堆,在数据结构上,是通过树(严格的说,是完全2叉树)这一数据结构来表示和实现的,而栈,和数据结构里的后进...阅读全文
    作者:quickphp | 分类:c | 阅读:1516 views | 标签:, ,
Pages: 1 2 Next