Archive for 一月, 2008

微软电脑对联试用-很黄很暴力版

duilian_stliti_mobilehappymouseyear.jpg

试用地址:http://duilian.msra.cn/app/couplet.aspx

“&&”运算符的妙用

我们在很多并发成立的几个条件之间使用&&运算符,表示二者必须同时为真。

它还有一个隐含的意思,那就是只要有其中一个条件为假,则整个判断为假。

例如:

if(1==a&&1==b)

{

dosomething();

}

这是很普通的用法。我最近在学习一个开源的webserver程序。里面涉及到一个判断一个字符串的第一个字符是否是”/”,若是,则去掉这个”/”。

例如:“/home/name/works/index.php” =>”home/name/works/index.php”

            “index.php”=>不变。

我想这个算法并不复杂,用一个if else就搞定了.

可以这样写

char *url=”/home/name/works/index.php”;

char *doc;

doc=url;

if(*doc==’/')

doc++;//右移一位。

printf(“%s”,doc);

而这个开源程序中的算法令我惊讶。

char *url=”/home/name/works/index.php”;

char *doc;

doc=url;

*doc == ‘/’ && ++doc;

改算法巧妙的利用了&&运算符–判断前者,前者成立,则判断后者(后者此时是一个计算动作),若前者不成立,则忽略后者。在不使用IF的情况下完成了一个判断。十分精彩。

“&&”运算符的妙用

我们在很多并发成立的几个条件之间使用&&运算符,表示二者必须同时为真。

它还有一个隐含的意思,那就是只要有其中一个条件为假,则整个判断为假。

例如:

if(1==a&&1==b)

{

dosomething();

}

这是很普通的用法。我最近在学习一个开源的webserver程序。里面涉及到一个判断一个字符串的第一个字符是否是”/”,若是,则去掉这个”/”。

例如:“/home/name/works/index.php” =>”home/name/works/index.php”

            “index.php”=>不变。

我想这个算法并不复杂,用一个if else就搞定了.

可以这样写

char *url=”/home/name/works/index.php”;

char *doc;

doc=url;

if(*doc==’/')

doc++;//右移一位。

printf(“%s”,doc);

而这个开源程序中的算法令我惊讶。

char *url=”/home/name/works/index.php”;

char *doc;

doc=url;

*doc == ‘/’ && ++doc;

改算法巧妙的利用了&&运算符–判断前者,前者成立,则判断后者(后者此时是一个计算动作),若前者不成立,则忽略后者。在不使用IF的情况下完成了一个判断。十分精彩。

枚举,typedef,预处理

枚       举(enum)

    枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。
    例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY, 就是一个枚举。
    枚举的说明与结构和联合相似, 其形式为:
          

enum 枚举名{
  标识符[=整型常数],
  标识符[=整型常数],
  …
  标识符[=整型常数],
  } 枚举变量;

    如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始,  顺
次赋给标识符0, 1, 2, …。但当枚举中的某个成员赋值后, 其后的成员按依次
加1的规则确定其值。
    例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
     enum string{x1, x2, x3, x4}x;
    当定义改变成:
      enum string
      {
          x1,
          x2=0,
          x3=50,
          x4,
      }x;
    则x1=0, x2=0, x3=50, x4=51
    注意:
    1. 枚举中每个成员(标识符)结束符是”,”,  不是”;”, 最后一个成员可省略
“,”。
    2. 初始化时可以赋负数, 以后的标识符仍依次加1。
    3. 枚举变量只能取枚举说明结构中的某个标识符常量。
    例如:
      enum string
      {
          x1=5,
          x2,
          x3,
          x4,
      };
     enum strig x=x3;
    此时, 枚举变量x实际上是7。
  
  

                    类   型   说   明

    类型说明的格式为:
     typedef 类型 定义名;
    类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。这
里类型是Turbo C许可的任何一种数据类型。定义名表示这个类型的新名字。
    例如: 用下面语句定义整型数的新名字:
     typedef int SIGNED_INT;
    使用说明后, SIGNED_INT就成为int的同义词了, 此时可以用SIGNED_INT 定
义整型变量。
    例如:  SIGNED_INT i, j;(与int i, j等效)。
    但 long SIGNED_INT i, j; 是非法的。
    typedef同样可用来说明结构、联合以及枚举。
    说明一个结构的格式为:
      typedef struct{
          数据类型  成员名;
          数据类型  成员名;
          …
        } 结构名;
    此时可直接用结构名定义结构变量了。例如:
     typedef struct{
          char name[8];
          int class;
          char subclass[6];
          float math, phys, chem, engl, biol;
      } student;
      student Liuqi;
    则Liuqi被定义为结构数组和结构指针。
    在第二节讲过的文件操作中, 用到的FILE就是一个已被说明的结构, 其说明
如下:
     typedef struct
     {
          short level;
          unsigned flags;
          char fd;
          unsigned char hold;
          short bsize;
          unsigned char *buffer;
          unsigned char *curp;
          unsigned istemp;
          short token;
     } FILE
    这个结构说明已包含在stdio.h中, 用户只要直接用FILE 定义文件指针变量
就可以。事实上, 引入类型说明的目的并非为了方便, 而是为了便于程序的移植。
  
  

                预  处  理  指  令

    由ANSI的标准规定, 预处理指令主要包括:
     #define
     #error
     #if
     #else
     #elif
     #endif
     #ifdef
     #ifndef
     #undef
     #line
     #pragma
    由上述指令可以看出, 每个预处理指令均带有符号”#”。下面只介绍一些常
用指令。
    1. #define 指令
    #define指令是一个宏定义指令, 定义的一般形式是:
     #define 宏替换名字符串(或数值)
    由#define指令定义后,  在程序中每次遇到该宏替换名时就用所定义的字符
串(或数值)代替它。
    例如: 可用下面语句定义TRUE表示数值1, FALSE表示0。
     #define TRUE 1
     #define FALSE 0
    一旦在源程序中使用了TRUE和FALSE, 编译时会自动的用1和0代替。
    注意:
    1. 在宏定义语名后没有”;”
    2. 在Turbo C程序中习惯上用大写字符作为宏替换名, 而且常放在程序开头。
    3. 宏定义还有一个特点, 就是宏替换名可以带有形式参数,  在程序中用到
时, 实际参数会代替这些形式参数。
    例如:
     #define MAX(x, y) (x>y)?x:y
     main()
     {
          int i=10, j=15;
          printf(“The Maxmum is %d”, MAX(i, j);
     }
    上例宏定义语句的含义是用宏替换名MAX(x, y)代替x, y中较大者,  同样也
可定义:
     #define MIN(x, y) (x<y)?x:y
    表示用宏替换名MIN(x, y)代替x, y中较小者。

    2. #error指令
    该指令用于程序的调试, 当编译中遇到#error指令就停止编译。其一般形式
为:
     #error 出错信息
    出错信息不加引号, 当编译器遇到这个指令时, 显示下列信息并停止编译。
      Fatal: filename linename error directive

    3. #include 指令
       #include 指令的作用是指示编译器将该指令所指出的另一个源文件嵌入
#include指令所在的程序中, 文件应使用双引号或尖括号括起来。Turbo C 库函
数的头文件一般用#include指令在程序开关说明。
    例如:
     #include <stdio.h>
    程序也允许嵌入其它文件, 例如:
     main()
     {
          #include <help.c>
     }
    其中help.c为另一个文件, 内容可为
       printf(“Glad to meet you here!”);
    上例编译时将按集成开发环境的Options/Directories/Include directories
中指定的包含文件路径查找被嵌入文件。
  
    4. #if、#else、#endif指令
    #if、#els和#endif指令为条件编择指令, 它的一般形式为:
     #if 常数表达式
          语句段;
     #else
          语句段;
     #endif
    上述结构的含义是: 若#if指令后的常数表达式为真, 则编译#if到#else 之
间的程序段; 否则编译#else到#endif之间的程序段。
    例如:
     #define MAX 200
     main()
     {
          #if MAX>999
               printf(“compiled for bigger\n”);
          #else
               printf(“compiled for small\n”);
          #endif
     }
  
    5. #undef指令
    #undef指令用来删除事先定义的宏定义, 其一般形式为:
     #undef 宏替换名
    例如:
      #define TRUE 1
       …
      #undef TURE
    #undef主要用来使宏替换名只限定在需要使用它们的程序段中。

游戏有什么用?

【转载自: “刘韧blog”】 

1.         小时候,父亲很严厉。他在隔壁咳嗽一声,我都会哆嗦一下。第一次“指挥”父亲,是“双打”“坦克”,父亲不熟练,我第一次向他喊:“快点,快点。”当因为父亲“失误”,而使我们的“堡垒”被攻破时,我能第一次感到了父亲的歉意。

2.         为了不让我的儿子怕我,我从来没打骂他。为了让儿子有挫折感,我和他“对打”“生与死”,我将他打得落花流水。他在地上打滚,泪如雨下,嗥叫“不带连续进攻的。”我不理他,继续将他打得落花流水。

3.         文艺理论认为,读者喜欢读小说,是为了满足角色扮演的需要。没几个人能像宝哥哥那样生长在万花丛中,但每个读者都可以扮演一次贾宝玉,让众多女孩爱着。但读者为什么也喜欢看压抑的《罪与罚》、看暴力的《发条橙子》?难道,人真的是一半天使一半魔鬼?难道读者也有扮演魔鬼的需要?难道扮演魔鬼也有快感?

4.         我上中学那会,报上时常论证黄色小说和青少年犯罪的关系。我相信,少年犯大都看过《少女之心》可能是事实,但看过《少女之心》的人,99.999%不会成为少年犯。

5.         现在,报上时常讨论网络游戏对青少年的毒害。连续打网游死在网吧的个案确实让人触目惊心。但玩网游没死在网吧的人有几千万。几千万对个案,哪个是大数因果?哪个是臆造的狂想?近100年来,全世界死于车祸的人数已超过2000万,但我们依然在大力发展汽车工业,因为近100年来,没死于车祸的人更多。

6.         我承认,网游对青少年的吸引力大于读书,对网游内容应该进行更加严格的审查、分级,我赞成应该有反对网游的声音,这样可以提高网游厂商的底线,但不同意,将网游简单地说成精神鸦片。

7.         我们很少考虑吃饭有什么用,因为不得不吃饭。我们很少考虑游戏有什么用,因为不得不娱乐。娱乐会增加幸福感。我问我的儿子,什么时候最幸福。他说:“打游戏的时候。”放心,我会引导、劝说、督促他学习,但我不会粗暴地剥夺他的幸福。

鲁迅·金庸·余华·王朔

【转载自: “刘韧blog”】

1.         鲁迅本可以成为伟大的文学家。思想、天赋、经历、学识文字技巧,他都有。唯独缺少成为伟大文学家的胸怀。他短暂的一生,大部分浪费在了价值不高、无休止的论战上。

2.         鲁迅幽默、深刻,但这幽默用在了格式化、概念化的阿Q上,这深刻用了《丧家的资本家的乏走狗》上。接受尼采与留学日本,让鲁迅的文字充满了感伤。这可贵的感伤,大部分用在了“出离”愤怒之后的纪念上。临终,鲁迅像个任性的孩子说:“一个都不原谅。”时评需要有人写,让编辑记者们写就可以了。时代赋予伟大作家更重要的事情做。

3.         余华已经第三次写少年偷窥女厕所了。余华像个理科生,将一个故事不停地修正,让它日臻完善。对余华而言,现在所有的写作,都是在为最后的传世之作,打草稿。而这草稿还能卖钱,不亦乐呼?

4.         成为一个伟大的文学家,余华本钱不如鲁迅。他没有鲁迅的经历、深刻与学识,但余华一直在积累,总有一天,余华能积累出一本传世之作。

5.         王朔对余华的评价是:“我一听《兄弟》一开始是偷看女厕所我就没看,我不愿意看那个,女厕所有什么可看的,没看过毛片还是怎么着,女厕所还有什么可看的。我不愿意看那种,说实在的,余华当然也是我的朋友,余华也很脆弱,别瞎聊了。”“余华我们也都算是少年得志,年轻时候就出名了,都要有一个转型。这个转型大多数人没有完成,挺难的,我很同情,我很知道大家的处境,所以他那个努力不管成功失败,总是一个英勇的尝试,不必多说,听说卖的不错,排行榜上。”

6.         余华努力的样子,看起来是有些拙笨,累得汗珠子四溅,还无法摸到文革之后的中国现实,但余华还在努力,还有超越的机会,但是才子王朔已经放弃了。如果王朔像余华不停地修正《在细雨中呼喊》一样,不断地修正《动物凶猛》,今天不会沦落到需要拼凑出一本《我的千岁寒》。对改革开放之初中国,王朔比余华有认识、有生活。

7.         仅凭将大场面写得纹丝不乱,金庸在文学上就远超过才子古龙。古龙总是投机取巧地避免细节与场面。文学界同样不承认金庸是因为金庸笔下的人物性格是静止的没有发展变化。

8.         博士对我说:“不是金庸写不出性格变化,是金庸要照顾更多的普通读者,怕他们读不懂,所以,采用了概念化的没有内在冲突、变化与张力性格塑造。”《罪与罚》中的罗加自己都无法认识找到自己,所以,能读《罪与罚》找到罗加的人毕竟是少数。而金庸追求的是有华人的地方,就有金庸的书。

看今儿火箭的球有感

已经很久没看过这么惊心动魄的比赛了,刺激,过瘾。

以前刺激的比赛火箭到打出了不少,都是莫名其妙就在最后一节大溃败,让人受刺激。我都快没信心了。这样结果让人联想到的中国足球队–关键时刻掉链子。我也很纳闷,怎么每支球队遇到火箭的时候都能超水平发挥。

不过那都是从前的事儿了,今天这场比赛,火箭在第四节上演了大逆转。这种情况对火箭这样的球队来说实在是稀少。上次“绝杀”湖人也是在对方比分咬的很紧的情况下,谁输谁赢都有可能。第四节一开始就被对方把比分领先到13分。连主持人都说,火箭基本上“到悬崖边上,脚一半都在空中,再推你一把就下去了”。火箭还是上演了大逆转,靠着防守和姚明的罚球还有T-MAC的爆发,火箭打出25:7的高潮,反超4分。虽然麦蒂最后罚球两罚不中差点葬送胜利。好在杜兰特三分绝杀不中。火箭横扫超音速,取得3连胜。

随着麦蒂的回归,火箭接连的胜率。大家又看到了季后赛的希望。目前火箭排名西部第10,和第7名差距不过2场。看了一眼后面的赛程,火箭的对手恰好是目前西部的7、8、9名,开拓者,勇士,爵士。如果火箭能够拿下这三个对手中的两个,就有希望直接回归前八。

期待他们。

新博客开张,欢迎交换LINK。

blog11.jpg数起来,这已经是我第四个博客站了。

 blog11.jpg

最早使用的msn space,注册到一个不错的二级域名,但是慢慢发现国外服务器经常访问困难,发一篇文章要等待很长时间,最终让我放弃了托管。不过那个时候我对写博客的兴趣已经十分高涨,还写过几篇不错的时评。

后来转到自己买的服务器上,很有成就感,独立域名,diy的页面。也有了一些名气,但是因为博客程序本身的问题,导致垃圾广告泛滥,服务器速度很慢,让我很没心情更新。

再后来搬往校内,人气很旺,发帖有很多人会看。但是封闭访问不能满足我的需求。发文质量有所下降,并掺有大量转载。

现在的博客是基于wordpress最新版本构架,主机在洛杉矶,对于电信和网通用户访问速度都十分良好。服务商七十二松提供很好的技术支持。本站的永久访问域名 http://blog.9ri.net/ 欢迎于留言和我互换连接。

请用  张旭/hardy++ 的名字命名我的连接,谢谢。

最新版“靠不住”

看完《苹果》发现,男人靠不住
看完《色戒》 发现,女人靠不住
看完《投名状》发现,兄弟靠不住
看完《集结号》发现,组织靠不住
看完《妈妈再爱我一次》发现,老爸靠不住
看完《新警察故事》发现,儿子靠不住
看完《满城尽带黄金甲》发现,老婆老公靠不住
看完《红楼梦》发现,祖母和嫂子也靠不住
看完《西游记》发现,师傅靠不住
看完《水浒》发现,领导靠不住
看完《霍元甲》发现,徒弟靠不住
看完《无间道》发现,警察靠不住
看完《无极》发现,馒头靠不住
看完《青蛇》发现,动物靠不住
看完《阳光灿烂的日子》发现,避孕套靠不住
看完《疯狂的石头》发现,国际高手靠不住
看完《长江7号》发现,地球人靠不住
看完《料理鼠王》发现,大厨靠不住
看完《肖申克的救赎》发现,出纳靠不住
看完《史密斯夫妇》发现,老公老婆公司都靠不住

看完《勇敢的心》发现,贵族靠不住
看完《闻香识女人》发现, 不瞎的人都靠不住
看完《越狱》发现,牢房靠不住
看完《二十四小时》发现,总统靠不住
看完《午夜凶铃》发现,电话靠不住,电视更靠不住
看完《变形金刚》发现,外星人也靠不住
看完《黑客帝国》发现,一切现实都靠不住
结论:

只有 “我” 靠得住,简称:我靠!!

wordpress 终于搭好了

花了一天半吧。问题接二连三。

开始php装上了,可apache却依然不支持,配了好长时间也不行。重启了一下,发现可以了。

后来发现mysql也没装呢,装最新的5.0+。老是显示和旧版本4.0冲突,花了好长时间搞清楚linux下卸载rpm的方法,算是给装上了。装上了,可守护进程mysqld怎么也打不开。google了半天,有说防火墙没关的,有说用户设置权限的问题。却都不是我的原因。干脆删了重装,完全按照之前的步骤走,这一次居然的能启动了。晕。

中午开始安装wordpress,第一次用lamp建站,有点不知所措。人家要个用户名我就写上了linux的root,搞了半天也不行。最后才知道,人家要的是mysql的用户名。。。在mysql下建了一个表,然后开始安装wp,步骤十分简单。感觉linux的控制台功能基本上可以替代很多虚拟机在线控制面板了。

可惜只有我自己能访问。呵呵没法给大家看了。wordpress是什么样子。大家看 不许联想 的网站就知道了。皮肤太多了,三表哥居然用默认的皮肤。

 

无觅相关文章插件,快速提升流量