blog正式转移到了这里:

http://blog.phoeagon.cz.cc



I know

phoeagon啲01世界

2009 年 1 月 29 日  星期四   晴天


若干你不太可能用到的Free Pascal的techniques 分類: Programming Impossib...

 

若干你不太可能用到的Free Pascaltechniques

(2 and the final)

十六,過程的參數

這個話題說過很多,就在上文~好吧,有形參實參。但是噁心的還有常參(前文說道),和類型不定參~ array of const,典型的delphi用法。(注意到這裡還是不定元素個數,當然也可用slice代替~)還有缺省參數。

其餘的不算參數,但也順帶講解一下。有inline標注,forward標記,有overload標記,這三個前文都有涉及,自己看罷~

十七,過程

type
  IntProc = procedure (var Num: Integer);
procedure DoubleTheValue (var Value: Integer);
begin
  Value := Value * 2;
end;

 

var

  IP: IntProc;

  X: Integer;

begin

  IP := DoubleTheValue;

  X := 5;

  IP (X);

End.

這種用法叫過程類型。

注意,這種類型的引入或者調用或者更改,對於不熟悉的人士可能造成runtime error 216. GPE

十七,字符串

String0位是它長度的chr的返回值,這就是它最多只有255位的原因。“實操”中,可能覆蓋(override)它,如movefillchar等(見後文),注意:

//for tripley by phoeagon

Var

A:string;

Begin

A:=’I love PASCAL’;

A[0]:=chr(0);

Writeln((a=’’)and(a[1]=’I’));

End.

運行結果是:TRUE

自己理解。

另外字符串被compiler轉換編碼之類也是很痛苦的東西~不解釋。

十七、fillcharsizeofmove~stack, heap, procedures&functions,~

Fillchar(destination, bytes to fill, pattern)

Fillchar用於填充一段連續的內存空間,按字節填充pattern。通常是:

Fillchar(dp,sizeof(dp),0);

//Which is often seen in the init part.

雖然常常填充0,常常用sizeof獲取字節數,但這不是一定的。

Move(source, destination, bytes);

Move用於拷貝一段連續的內存空間~

注意到movefillchar爲什麽會快,這兩個過程省去了大量尋址和邊界檢查的時間。

然而,如果操~~~作的字符數比變量要大,它會干到變量外邊去,干到別人的地方去,最倒霉時可能跳出來程序已經申請的空間而崩潰~

所以,猥瑣而不推薦~

Stackheap

I386_Win32默認下F***Pascal會自己為堆棧和堆申請空間,就是說本身這個是幾乎不限制空間的(32-bit程序本身有4G的限制),只是受限於OS。但是你如果明明知道要多少空間,可以用編譯參數指定,這樣比不斷擴充空間快~~~一點點。

intel流行的版本中,最多過程的參數有4K,過程內的變量不特別限空間。

編譯器對程序內的過程、函數數有限制。默認只有1024個子程序或函數可以被定義。這個限制可以通過修改fp附帶的srccompiler中的源碼并重新編譯放鬆,如可以讓一個程序有4096個子過程等等~

18、最最ws~

獨家公布:

在字符串中,兩個單引號相當于一個。

所以:

Writeln(‘’‘’‘’)

會打印出2個單引號chr(39))!

 

 

現在ws完畢,希望大家沒有吐到太嚴重。

請各位平靜情緒,如果難以平靜的可以看看煎蛋(www.jandan.net)上曾經有的欄目,每日一美女。

什麽?你是女生?誰讓你進來的?我一開始警告過~這就是我警告的原因~這個欄目對你沒有舒緩情緒的作用~還是自己買個geekini玩去~

給我一個F***Pascal,我可以這么WS~

(如果三個小時呢您身體不適的症狀沒有減輕,或者出現或持續出現嘔吐不止、脈搏減弱、瞳孔擴散等症狀,請立即撥打120999.

如果您覺得還不夠ws,可以討論一下NCE中的sophieBorlandDelphi的區別和聯繫~NCE1 lesson 7:(圖片自己搜)

  MR. BLAKE: Good morning.

  STUDENTS: Good morning, Mr. Blake.

  MR. BLAKE: This is Miss Sophie Dupont.

  Sophie is a new student.

  She is French.

  MR. BLAKE: Sophie, this is Hans.

  He is German.

  HANS: Nice to meet you.

……






訪客留言 (返回 phoeagon 的日誌)

訪客名稱:
電郵地址: (不會公開)
驗證碼:  按此更新驗證碼 (如看不清楚驗證碼請點擊圖片刷新)
俏俏話: (必需 登入 後才能使用此功能)
[ 開啟多功能編輯器 ]







人氣:79408
暱稱: phoeagon
性別: 男
MORE...  
« July 2024 »
SMTWTFS
123456
78910111213
14151617181920
21222324252627
28293031
» 最新日誌
Blog Moved!
跨站jsMath实现
路由表是个好东西
Twitter Fav列表达陈100...
搞定了公式显示
» 日誌分類
全部 (175)
Code Storage (11)
Math&Phy@Chem@MM (8)
Music Anyway (5)
Programming Impossible (28)
RSS提示 (2)
StorageBox (5)
'Bout Here (12)
滑鼠人生 (42)
碎屑 (51)
未分類 (11)
» 訪客留言
最近三個月尚無任何留言
» 最近訪客
最近沒有訪客
» 每月文章
» 日誌訂閱
尚未訂閱任何日誌
» 我的好友
» 我的連結
Ink Mark --Jlim
StarKirby
|S||S||S|
「流年祭」
» 日誌統計
文章總數: 175
留言總數: 86
今日人氣: 178
累積人氣: 79408
» 站內搜索
RSS Feed