動手寫程式是一個想成為程式設計師很重要的入門不二方法...
別以為你看完數萬行Source Code就可以成為頂尖的程式設計師...
程式是別人寫的,別讓這些程式碼限制了你的想像空間極限...
動手寫寫看,你會發現完全不同的世界...
因為想像空間之大,你必須親身體驗...
不是等別人跟你說...
#程式中最重要的部份應該是註解而不是程式碼,這是因為閱讀註解一定比閱讀程式碼簡單又快速...
#程式寫好後用不了多久就會忘的差不多了,所以請務必花點時間把註解寫好寫清楚,至少能讓自己(或別人)看的懂當初在寫什麼,這是很重要的一件事...
歡迎跟我連絡
免安裝程式...哈哈 歡迎聊天
2008年5月15日 星期四
Source Code的迷思
台灣人的世界觀
今天收到的一封轉寄的信...
是一張圖名為 "台灣人的世界觀"
看似好笑,但是覺得如果台灣民眾都這樣想的話,真的很可悲...
因為只有台灣代表好的,其他國家註解中,
對台灣友善一點就輕描淡寫,對台灣不友善就明指其缺點(負面的新聞)...
如果台灣教育是這樣的話,無疑就是自欺欺人...
有句話這樣說道...
"In life, as in chess, it is always better to analyse one's motives and intentions."
"人生婉如一場棋賽,你最好能夠洞悉對手的動機及目的."
別把自己想的太好,把對手認為太差,唯有知己知彼,才能百戰不怠...
再看看那地圖中,等於邪惡帝國的美國,等於A片的日本,及黑心食品的對岸,請問誰沒有發射過火箭上太空...
2008年5月13日 星期二
活出自己 活得精彩
最近有一則汽車廣告...
開始是男主角從滿是女鞋的鞋櫃,拿出他的鞋...
此時螢幕顯示( + 包容 )
接著是男主角端起攪拌好的咖啡準備看電視,老婆走過來將咖啡換成鮮奶...
此時螢幕顯示( - 習慣 )
接著鏡頭帶到游泳池,男主角將孩子扛在肩上戲水...
此時螢幕顯示( * 責任 )
最後一幕,男主角將一間堆滿模型的房門關上...
此時螢幕顯示( / 自由 )
最後這樣寫道:換算之後 你是否還記得真實的自己
廣告真是蠻棒的! 40秒的CF將一個男人的家庭責任描寫形容的蠻貼切的...
的確也是...
其實絕大部分的時候,人真的不是自己獨活就好...
尤其是有家庭了後,對父母妻兒的責任,一直要到倒下才算結束...
愛因斯坦說:人是為其他人活著,主要是為我們所關心的人的笑靨和生活,此外也為一些不曾相識的靈魂,因為同情的絲帶把彼此繫在一起...
你覺得呢???
至於活出自己 活得精彩 我想還是想想就好...哈哈哈
2008年5月12日 星期一
即使世界都遺棄了我們...
即使世界都遺棄了我們,我還是不會放開你的手,只因為,你是我最好的朋友.
《穿條紋衣的男孩》是一本在全世界各地入圍、得獎無數,並且口碑載道、備受讚譽的一本書。通常對於這樣的書,我們都會有很多話想說,都會迫不及待的想要向你介紹劇情,但是這一次,我們決定不那麼做,因為我們認為那將會毀掉你的閱讀樂趣。我們希望,你能夠在完全不知道故事的情況下,自己和書中的男孩布魯諾一起展開這場未知的探險。
當你翻開這本書後,你將隨著九歲的布魯諾踏上一段旅程,並且還會跟他一起來到一面圍籬前,認識另一個男孩。無論過去、現在,還是未來,像這樣的圍籬在全世界都有,但我們衷心希望你永遠也不會碰上這樣的圍籬…… 《以上轉载自金石堂網路書店》
雨季說:
這本書一定會去買來看,因為又是一本讓人動容而久久無法釋懷的好書...
介紹給大家...
婚禮的祝福 - 陳奕迅
歌名:婚禮的祝福
作詞:許常德 作曲:陳建寧/陳政卿 編曲:涂惠源
時間一秒一秒一秒倒數計時
往事一幕一幕一幕突然靜止
你挽著他他挽著你向我走過來
同桌的人蜂擁而上將你我隔開
我乾杯你隨意這是個殘酷的喜劇
我的人生早留在你那裡
我卻還要故作瀟灑地
你和他我和你這是個諷刺的交集
是你太殘忍還是我太天真
你要我來就真的出席
我的請帖是你的喜帖
你要的一切如今都變成我的心碎
你總是太清醒我始終喝不醉
連祝福你還逼我給
你的喜帖是我的請帖
你邀我舉杯我只能回敬我的崩潰
在場的都知道你我曾那麼好
如今整顆心都碎了 你還要我微笑
雨季說:
連續劇的劇情,現實生活中,會如此殘認嗎?
Variable In C
先看一段程式簡碼,再來談變數...
#include
#include
#include
int gi_variableA;
void test1();
void test2();
void test3();
void main()
{
int li_variableB;
extern int ei_variableD;
li_variableB = ei_variableD;
.....
}
void test1()
{
static int si_variableC;
.....
}
int ei_variableD;
void test2()
{
register int ri_variableE;
.....
}
void test3()
{
int *pi_variableF;
pi_variableF = malloc(100);
.....
free(pi_variableF);
}
今天的主角有六個分別是:
gi_variableA/li_variableB/si_variableC/ei_variableD/ri_variableE/pi_variableF
我的變數命名規則:
第一碼:變數種類
第二碼:Data Type
第三碼:底線
第四碼含以後:變數目的
變數種類介紹:
Global Variable(gi_variableA):程式檔案範圍的變數是一種全域變數,檔案中所有的函數都可以去使用它.[main() test1() test2() test3()都可以引用]
Local Variables(li_variableB):程式區塊範圍的變數是一種區域變數,變數只能在宣告的函數中使用,在函數外的程式碼並無法存取此變數.[main()才可以引用]
Static Variable(si_variableC):是一種在函數或程式檔案宣告的永久變數,在其它函數或程式檔案並無法存取這些靜態變數.在函數的程式區塊宣告的靜態變數,不同於其它區域變數,在離開函數時會消失,編譯程式會替靜態變數配置固定的記憶體位置,在重複呼叫函數時,靜態變數值都會保留下來.在宣告變數前加上static 關鍵字,就可以宣告靜態變數.[test1()才可以引用,但是其值會被保留下來]
External Variable(ei_variableD):C語言全域變數也稱為「外部變數」,外部變數都會配置固定的記憶體位置,如果沒有指定初值,預設值為0.[ei_variableD宣告在test1()之下,所以雖然號稱全域變數,但是只有test2() test3()可以直接引用,main()或test1()要引用時,在函數內宣告extern int ei_variableD才可以開始引用,如main()所示]
Register Variable(ri_variableE):「暫存器變數」,是針對程式中存取十分頻繁的變數,可以直接將變數置於CPU的暫存器,以便加速程式的執行,通常是使用在迴圈的計數器變數.在宣告變數前加上register關鍵字,就可以宣告暫存器變數.[test2()才可以引用]
對「暫存器變數」的一些限制規定:
a.暫存器變數只可以使用在區域變數或函數的參數.
b.暫存器變數並不能使用「&」取址運算子取得變數的位址(因為其位址不在記憶體內).
c.暫存器變數允許使用的個數需視CPU的電腦硬體而定,而且只有少數變數可以宣告成暫存器變數.
d.Compiler對於暫存器變數並不一定處理(如果暫存器不足的話),不過就算將變數宣告成register也無所謂,Compiler會自行決定是否處理.
Pointer Variable或Dynamic Variable(pi_variableF):「指標變數」或稱「指標變數」,變數內儲存的是某變數所在記憶體的位置,C語言之所以強大的功能之一.因為宣告後,可以對其做動態記憶體配置(malloc),視情況而去配置,不用時可以去釋放掉(free),所以稱為動態變數.[test3()才可以引用]