Thursday, August 28, 2008

Macports on Leopard

As a student, to buy softwares is not what I can afford, and I don’t like to search and use the crack version of the commercial software. Open source software project in UNIX world is really good for me. I believe that Mac OS is UNIX based operating system, so I want to make my macbook with leopard os well compatible with open source projects.
Just as any Unix system, an easy to use system for compiling ,installing, and upgrading open-source software in your operating system is really necessary to open source fans. There are in fact two different projects doing this for Mac OS X. One is called MacPorts (upgraded from the old Darwinports), and the other is Fink.
There are some discussions about “Darwinports vs Fink”- which is better? I didn’t do much research , but I think Macports community is more active then Fink. So Macprot becomes my choice.
There is no trick during installing Macports on Leopard, as there is a simple .dmg file on the official website of the Macports. And the guide on the website should be enough for your to get start.

Saturday, August 23, 2008

Blogger如何贴代码框?(ZZ)

其实很简单,就是先要在你的模板中加入一个CSS代码。

Step1:进入到 控制台-模板-修改HTML ,“扩展窗口小部件模板” 前不用打勾。在模板内容里找到下面这段代码,你可以通过按Ctrl+F搜索“skin”两次找到



]] ></b:skin>
</head>

然后将下面的代码段拷贝加到上面代码的前面,就是那两个中括号前面



CODE {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 8pt;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:200px;
line-height: 1.2em;
}


Step2:在Html模式下,把文章中将要引用的代码前后分别用<code> 和 包起来,这样就可以显示成代码框了。 需要注意的是如果引用的程序中含有<> 括号,要把"<"用双/单引号括起或者&lt代替,“>”用双/单引号括起或者&gt代替,不然<>的内容就会被Blogger的编辑器当成代码执行而不显示。

[来源百度知道]

Wednesday, August 20, 2008

Mac Tip: Add Quit to the Finder Menu (zz)


Finder.pngMac OS X only: Sick of not being able to exit Finder? A quick terminal command will add a "quit" option to the menu in Finder. This means you can run Finder like any other Mac application. If you're running some heavy applications, simply close Finder and enjoy the extra, albeit small, processing power. Open a terminal and enter the following command:



defaults write com.apple.Finder QuitMenuItem 1


You will need to restart for the changes to take effect. Here's the caveat: Finder also manages the icons on your desktop. If you exit Finder, you won't be able to see any of the icons on your desktop. Just click the icon in the dock to bring Finder back.

Tuesday, August 19, 2008

C语言全局变量和局部变量(zz)

转载来源

引子---
        变量可以在程序中三个地方说明: 函数内部、函数的参数定义中或所有的函数外部。根据所定义位置的不同, 变量可分为局部变量、形式参数和全程变量。从空间角度来看,变量可以分为全局变量和局部变量,而从时间角度来分的 可以有静态存储变量和动态存储变量之分。

一。全局变量和局部变量

1。局部变量

他是 指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用

最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失

eg.

func ()

{
   int x;   局部变量x的作用域 很明确
   ......
}


2。全局变量

在程序执行的过程中一直有效

eg.

int x=1;

func ()

{
   x=x+1;

}

func1 ()

{
  x=x-1;

}

main ()

{

}
由此不难看出整型x的作用范围


对于全局变量 如果在定义的时候不做初始化 则系统将自动为起赋值 数值型为0

字符型为空'\0'

全局变量的弊端 增加内存开销 降低函数的通用性

定义全局变量时 理想的位置是在文件的开头 当这些函数以及同一个程序中的其他源程序文件中的某些函数需要使用该全局变量时 在函数内部对该变量使用extern 加以说明 说明他是外部的 

(这里还要做详细的讲解)

eg.

main ()

{
extern int a,b;
printf ("mIn is %d\n",min(a,b));
}

int a=1,b=2;
int min (x,y)
int x,y;
{
int z;
z=x"<"y?x:y;


我还要说明的是 对外部变量的说明和对全局变量的定义不是一回事

对外部变量的说明 只是声明该变量是在外部定义过的一个全局变量 在这里引用 而对全局变量的定义则是要对起分配存储单元的

一个全局变量只能定义一次 可是却可以多次引用

*** 在同一源文件中,全局变量和局部变量同名时,在局部变量的作用域内,全局变量不起作用的。


二。静态存储变量和动态存储变量

对于程序运行期间根据需要进行临时动态分配存储空间的变量 为动态存储变量

对于那些程序运行期间永久占用固定内存的变量 称为静态存储变量


还要说明的是 程序的指令代码是存放在程序代码区的 静态存储变量是存放在静态数据区的 包括全局变量等 而程序中的动态存储变量存放在动态数据区 如函数的形参以及函数调用时的返回地址等

 


三。C语言中的变量存储分类指定
    
    auto 
    auto称为自动变量 如果函数不做其他说明的话 均为自动变量


    static 
    static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 
    1. 静态局部变量 
    

     它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。 
    

    2. 静态全程变量 
    

     Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。 
   
   
    extern 
    extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要被其它文件使用。因此,   必须将全程变量通知每一个程序模块文件,   此时可用extern来说明。 


eg. 


        文件1为file1.c                  文件2为file2.c 
    int i, j;/*定义全程变量*/        extern int i, j;/*说明将i, j从 
                                                     文件1中复制过来*/ 
    char c;                          extern char c; /*将c复制过来*/ 
    void func1(int k);               func2()        /*用户定义函数*/ 
                                     { 
    main()                              static float k;/*定义静态变量*/ 
    {                                   i=j*5/100; 
          func1(20);/*调用函数*/        k=i/1.5; 
          func2();                           . 
          .                                  . 
          .                                  . 
          .                            } 
     } 
     func1(int k) /*用户定义函数*/ 
     { 
          j=k*100; 
     } 

    对于以上两个文件file1.c和file2.c, 用Turbo C2.0的集成开发环境进行编译 
连接时, 首先应建立一个.prj的文件。例如file.prj, 该文件内容如下: 
     file1.c 
     file2.c 
    然后将file.prj的文件名写入主菜单Project中的Project Name项中。 再用F9 
编译连接, 就可产生一个文件名为fioe.exe的可执行文件。 
     
  

    register 
    register称为寄存器变量。它只能用于整型和字符型变量。定义符register说明的变量被Turbo C2.0存储在CPU的寄存器中,  而不是象普通的变量那样存储在内存中, 这样可以提高运算速度。但是Turbo C2.0只允许同时定义两个寄存器变量,一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量来处理。因此, 寄存器变量常用在同一变量名频繁出现的地方。 
    另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量, 
因此, 不能用作全程变量。定义一个整型寄存器变量可写成: 
      register int a; 
    对于以上所介绍的变量类型和变量存储类型将会在以后的学习中, 通过例行程序中的定义、使用来逐渐加深理解。

Saturday, August 9, 2008

Monday, August 4, 2008

Saturday, August 2, 2008

MacSword--Bible study software for Mac OS X

MacSword

A free software  for bible studying,  to search and quote useful words from the bible.
I installed for the first time, aim to learn the bible.