-
Apr252012
最近几天一直都在忙着公司的项目,所以时间也比较的少,但是我也会忙里偷闲,想一想这个被意淫中的脚本语言应该是如何工作的。
略懂编译原理的人都会知道,从脚本被作为字符流输入到最后被执行,通常都会经过词法分析,语法分析,语义分析,中间代码生成,中间代码优化,目标代码生成,然后与其他已经既存的被依赖的外部库进行链接,一起生成可执行代码(也就是机器所能识别的机器...阅读全文
作者:quickphp | 分类:
c | 阅读:185 views | 标签:
q语言
-
Apr202012
也许你要问我,这是个什么玩意儿,其实我只能告诉你,这也许只是一个解释性的脚本语言的名字。也许你会继续问,有什么特性?有文档吗?或者…?
我只能告诉你,我正在设计它,至于它会长什么样子,说实话,我也不知道。
但我可以告诉你的是,它很快就会来到你的面前,以一种你意想不到的方式。
阅读全文
作者:quickphp | 分类:
c | 阅读:1109 views | 标签:
q语言
-
Oct262011
在C语言中,每个变量在使用之前都应该先声明,其中就包含变量类型的声明,但也有一些情况,比如一个表达式,这个时候在进行逻辑判断或者算术运算的时候,会有一个隐式转换的过程,其顺序是char,short->int->unsigned->long->double阅读全文
-
Oct252011
基于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...阅读全文
-
Oct252011
队列在我们的日常应用中十分有用(比如邮件队列啊,任务队列啊等等之类的),其特性就是先进先出,从列尾将新的elements加入队列,而从列头取出elements,通常,队列可以看成是受限链表.写了一个简单的example.
代码如下:
#include<stdio.h>
#include<stdlib.h>
struct node{
int value;
struct node * next;
};
typedef struct queue{
struct node * head, ...阅读全文
-
Oct242011
在C语言中,直接访问与间接访问,其中关于分配的细节是不同的。通过直接访问的变量,在内存里只会有一块内存存储,而通过间接访问的变量等,不单要为其真实值分配内存,还要为其间接访问的如指针分配存储指针值的内存,多级间址访问就会分配多块内存给该段代码来使用。
直接看代码:
#include <stdio.h>
int main()
{
int arr[2] = {1,2}...阅读全文
-
Oct232011
今天看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...阅读全文
-
Oct222011
今日有群友问一万年历问题,大概需求是求得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 | 标签:
c语言,
万年历
-
Oct212011
#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]本身。可是当我看完下面的代码后,我恍然...阅读全文
-
Oct172011
0)在谈及这个问题之前,我们先要明确一点,堆,栈是两个不同的概念,尽管因为历史的原因,通常我们把堆栈连在一起来讲。同时,这里的堆,栈,分两个层面,在计算机物理内存(比如通常的RAM)里,它表示的是数据区域,而在数据结构上,他表示的是一种数据组织的结构。物理内存里的堆,在数据结构上,是通过树(严格的说,是完全2叉树)这一数据结构来表示和实现的,而栈,和数据结构里的后进...阅读全文
作者:quickphp | 分类:
c | 阅读:1516 views | 标签:
内存分配,
堆,
栈