鹰之歌

既然你崇拜鹰,就要像鹰一样翱翔天际,俯瞰大地。哪怕会摔的粉身碎骨。

导航

2011年5月30日 #

make中的隐含变量

摘要: 9.3隐含变量 内嵌隐含规则的命令中,所使用的变量都是预定义的变量。我们将这些变量称为“隐含变量”,这些变量我们可以对它进行修改:在Makefile中,通过命令行参数或者设置系统环境变量的方式来对它进行重定义。无论是哪种方式,只要make在运行时它的定义有效,make的隐含规则都会使用这些变量。当然,也可以使用-R 或—no-builtin-variables选项来取消所有的隐含变量(同时取消了所有的隐含规则)。 隐含规则中所使用的变量(隐含变量)分为两类:1.代表一个程序的名字(例如:“CC”代表了编译器这个可执行程序)。2.代表执行这个程序适用的参数(例如:变量“CFLAGS”),多个参数 阅读全文

posted @ 2011-05-30 16:40 鹰之歌 阅读(339) 评论(0) 推荐(0) 编辑

2011年5月29日 #

GoAhead Linux目录下Makefile注释

摘要: ## Makefile for the GoAhead web server reference source base# for the Linux OS## Copyright (c) GoAhead Software, Inc. 1995-2010# Copyright (c) PeerSec Networks, Inc. 2010##all: compile ARCH = libwebs.aNAME = webs# User Management switch#UMSW = -DUSER_MANAGEMENT_SUPPORT# Digest Access switchDASW = -D 阅读全文

posted @ 2011-05-29 18:36 鹰之歌 阅读(1220) 评论(0) 推荐(0) 编辑

makefile中命令的显示

摘要: 一下内容摘自陈皓《跟我一起写makefile》1.6.1显示命令: 通常,make会把要执行的命令在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么这个命令将不被make显示出来。最具代表的例子是我们用这个功能向屏幕显示一些信息。如: @echo 正在编译XXX模块.... 当make执行时,会输出“正在编译XXX模块....”字串,但不会输出命令,如果没有“@”,那么make将会输出: echo 正在编译XXX模块.... 正在编译XXX模块.... 如果make执行时,带入make参数“-n”或者“--just-print”,那么其只是显示命令,但不会执行命令,这个功能很利于我们 阅读全文

posted @ 2011-05-29 17:26 鹰之歌 阅读(4905) 评论(0) 推荐(0) 编辑

GCC的使用

摘要: 前言 编译器在编译过程中,先将程式码编译成 object 档,然後再和程式库联结,成为可执行档。故一个编译器须提供的参数主要有几类: 1.指定编译器编出的object 档或是可执行档档名。 2.在编译过程做最佳化,可提升程式的执行速度。 3.设定搜寻程式库的标头档 (header file) 及程式库档的目录及指定程式库档档名。 以下便以这四个大类分别介绍。 注意:下面在不同类别中所介绍的参数,几乎都可以混合著使用。 参数: -o out_put_filename .设定编译出的 object 档档名或是可执行档档名: 说明: 指定编译出的档名为 out_put_filename。 范例: 本 阅读全文

posted @ 2011-05-29 16:58 鹰之歌 阅读(221) 评论(0) 推荐(0) 编辑

返回大于或等于输入参数的第一个能被4整除的数的宏

摘要: #define ROUNDUP4(size) ((size) % 4) ? (size) + (4 - ((size) % 4)) : (size) 阅读全文

posted @ 2011-05-29 14:06 鹰之歌 阅读(221) 评论(0) 推荐(0) 编辑

2011年5月27日 #

堆栈的主要用途

摘要: 前注:参考《C专家编程》 堆栈段有三个主要的用途,其中两个跟函数有关,另一个跟表达式计算有关。 1.堆栈为函数内部声明的局部变量提供存储空间。 2.进行函数调用时,堆栈存储于此有关的一些维护性信息。这些信息被称为堆栈结构(stack frame,有的书中译为栈帧),灵位一个更常用的名字是过程活动记录(precedure activation recored).它包括函数调用地址(即当所调用的函数结束后跳回的地址)、任何不适合装入寄存器的参数以及一些寄存器值的保存。 3.堆栈也可以作为暂时存储区。 阅读全文

posted @ 2011-05-27 21:53 鹰之歌 阅读(1673) 评论(0) 推荐(0) 编辑

数组和指针

摘要: 情况一:a.cpp:int test[3]={1,2,3};b.cpp:#include<iostream.h>extern int test[];void main(){ cout<<test[2]<<endl;}运行结果正确,打印test[2],即3到标准输出。情况二:定义为数组,以指针方式引用a.cpp:int test[3]={1,2,3};b.cpp:#include<iostream.h>//extern int test[];extern int *test;void main(){ cout<<test[2]<& 阅读全文

posted @ 2011-05-27 16:54 鹰之歌 阅读(145) 评论(0) 推荐(0) 编辑

2011年5月25日 #

typedef与#define的区别

摘要: 1.可以用其他类型说明符对宏类型进行扩展,但对typedef所定义的类型名却不能这样做。如下所示: #define peach intunsigned peach i;/*没问题*/typedef int banana;unsigned banana i;/*错误,非法!*/2.在连续几个变量的声明中,用typedef定义的类型能够保证声明中的所有变量均为同一种类型,而用#define定义的类型则无法保证,如下所示:#define int_ptr int *;int_ptr chalk,cheese;经过宏扩展,第二行变为:int * chalk,cheese;这使得chalk和cheese成 阅读全文

posted @ 2011-05-25 17:29 鹰之歌 阅读(123) 评论(0) 推荐(0) 编辑

const与指针

摘要: 有如下几种const和指针结合的声明:1.const int *ptr;2.int const *ptr;3.int *const ptr;4.const int *const ptr;5.int const *const ptr; 其中,1,2两种声明表示ptr指向的对象是只读的,但是ptr本身是可以改变的(即可以指向其他内容);3声明表示ptr本身是只读的(即不能改变其值,也就是不能改变其指向);4,5两种声明表示ptr本身和ptr所指向的对象都是只读的。 测试程序如下:(只考虑该测试主题,忽略其他规范)View Code #include<iostream.h>int mai 阅读全文

posted @ 2011-05-25 15:03 鹰之歌 阅读(246) 评论(0) 推荐(0) 编辑

2011年5月21日 #

ringq.c源码解析

摘要: 一:ring_t类型描述: 下面的描述在uemf.h和ringq.c中都有:ringq_t类型定义在uemf.h中:View Code typedef struct { unsigned char *buf; /* Holding buffer for data */ unsigned char *servp; /* Pointer to start of data */ unsigned char *endp; /* Pointer to end of data */ unsigned char *endbuf; /* Pointer to end of buffer */ int bufl 阅读全文

posted @ 2011-05-21 16:54 鹰之歌 阅读(537) 评论(0) 推荐(0) 编辑

钱钱语录

摘要: 1)金钱有一些秘密和规律,要想了解这些秘密和规律,前提条件是,你自己必须真的有这个愿望。 2)如果你只是带着试试看的心态,那么你最后只会以失败而告终,你会一事无成。尝试纯粹是一种借口,你还没有做,就已经给自己想好退路了。不能实验。你只有两个选择,做,或者不做。 3)你能否挣到钱,最关键的因素并不在于你是不是有一个好点子。你有多聪明也不是主要原因,决定因素是你的自信程度。 一个人把精力集中到自己能做的,知道的,和拥有的东西的那一天起,他的成功就已经拉开了序幕。这也使得一个孩子完全有能力比成人挣到更多的钱。 4)你最好想清楚,你喜欢做什么,然后再考虑怎么用它来挣钱。 5)你要每天不断的去做对你的. 阅读全文

posted @ 2011-05-21 01:17 鹰之歌 阅读(555) 评论(0) 推荐(0) 编辑

想出十个使自己想变得富有的原因

摘要: 无意中拿到一本《小狗钱钱》,一只拥有看透人类心思的小狗成为了故事小女主人公的伙伴。它第一次跟她对话时,叫小女孩想出十个自己想变得富有的原因。看到这里,我也问问自己,你想变的富有的原因是什么呢?拿出笔写到纸上。 有时候很感慨自己看书的入境,都这么大的人了,还那么容易被鼓动。不过鼓动就鼓动吧,写下来再说。这从一定程度上反映了自己想变得富有的动力来源是什么,是否足够强烈,是否正确健康,这决定着自己能否富有,能否幸福。 1、有了足够的钱,可以让自己和自己的亲人在物质过上更好的生活。 2、有了足够的钱,可以让自己脱离物质生活的苦恼,而把更多的精力放到追求精神生活的提高上。比如富有了,就不会在乎去听演唱. 阅读全文

posted @ 2011-05-21 00:34 鹰之歌 阅读(701) 评论(0) 推荐(0) 编辑

2011年5月20日 #

返回比输入值大的第一个2的整数次幂

摘要: 在研究GoAhead源码时,看到一个函数定义如下:View Code 1 /******************************************************************************/ 2 /* 3 * Find the smallest binary memory size that "size" will fit into. This 4 * makes the ringq and ringqGrow routines much more efficient. The balloc 5 * routine likes p 阅读全文

posted @ 2011-05-20 20:41 鹰之歌 阅读(339) 评论(0) 推荐(0) 编辑

与GoAhead相关的一些问题与回答

摘要: Questions and Answers Why is GoAhead Software distributing royalty free embedded Web server source code?Our goal in releasing GoAhead WebServer under an open source license is to help put a Web server in every device, harness the pool of talented developers, and enhance the reliability of GoAhead We 阅读全文

posted @ 2011-05-20 18:47 鹰之歌 阅读(400) 评论(0) 推荐(0) 编辑

GoAhead的特点

摘要: SpecificationsGeneral:60K memory footprint Standards compliant Open scripting architecture Only dependant on standard C runtime library . Compatible with GoAhead’s Embedded Management Framework. Dynamic Content:ASP (not Microsoft IIS compliant) In-Process CGI Traditional CGI support (Most OS Platfor 阅读全文

posted @ 2011-05-20 18:40 鹰之歌 阅读(229) 评论(0) 推荐(0) 编辑