Artificial Intelligence Programming Lab(AIPLab) 討論區

Please login or register.

請輸入帳號, 密碼以及預計登入時間

新聞:

[慶賀]恭喜張清貿醫師升任北榮傳醫科主治醫師-20170201

作者 主題: [期末報告]-Preprocessor-95441159  (閱讀 27660 次)

johnnylan

  • Newbie
  • *
  • 文章: 7
    • 檢視個人資料
[期末報告]-Preprocessor-95441159
« 於: 十二月 29, 2008, 11:01:24 pm »
資工3C    95441159    藍子強

Preprocessor
前置處理器的三大功能:
1.巨集處理
2.包含檔案
3.條件編譯 
  一、巨集處理:
 巨集指令為代換用途,以巨集名來代表一字串。
 格式:#define 巨集名 字串    (不用加分號;)
 前置處理器碰到 #define 定義一個巨集名時,會記下此巨集名及其代表之
    字串當程式之任何地方使用到巨集名時,前置處理器會將巨集名以其代表
    之字串代換之。
•例如:#define PI 3.1416   (程式中使用PI)。
•巨集名可以使用大小寫,習慣上使用大寫,避免和程式中的變數搞混。
•巨集名亦可義成運算式,如:#define  f(x) x*x+2,則f(a)會以a*a+2代換之,
但要注意f(a+1)會代換成a+1*a+1+2,此為錯誤,應寫為#define  f(x) (x)*(x)+2。
•可用於程式發展時除錯之用:
•#undef:使用#define定義的巨集名,可以使用#undef使定義缺失效。

 二、包含檔案:#include
 #include是一前置處理指令可以將指定的檔案包含到主程式內。
 例如: #include 即是將標準輸出入函數標頭檔stdio.h包含到程式裡
 格式:
 1.#include <檔名>
   指示compiler到指定的路徑去尋找。例如:C:\tc\include
 2.#include "檔名"
   指示compiler到工作目錄去尋找。
•標頭檔內常存放一些常數定義、巨集定義及常用的函數,
例如:stdio.h內即定義出EOF、getchar、putchar...等。
•C語言尚有許多實用的函數,其中合ANSI標準的函數都放在標準C函數庫內,
而其宣告及常數、巨集定義都放在如下表所列的標準標頭檔內。
三、條件編譯
(一)若巨集名稱已被定義,則區段敘述會被編譯;反之,巨集名稱沒被定義,則區段敘述不會被編譯
(二)若巨集名稱未被定義,則區段敘述會被編譯;反之,巨集名稱已被定義,則區段敘述不會被編譯
(三)若常數運算是經計算後的結果得到非零的值,則區段敘述一會被編譯,而區段敘述二不會被編譯,
這個動作是在程式編譯之前,所以常恕運算是不能有變數,只能有常數及運算子。
#if常數運算式
      /*區段敘述一*/
#else
      /*區段敘述二*/
#endif
條件編譯的另一個功用是讓較舊的程式碼變成「註解」。由於註解(/* */)的裡面不能還存有註解(不可有巢狀註解),
所以你不能將存有註解的舊程式碼,再以/* 和*/ 包起來,因此可以使用#ifdef 來解決這個問題。


資料來源:
http://www.ylsh.ilc.edu.tw/~blpan/c/c5_3.html
http://www.riarock.net/qopsblog/2006/pdf/C_Ch07.pdf

----------------------------------------------------------------------
加分題:
F#

F#是由微軟發展的為微軟.NET語言提供運行環境的程序設計語言,是函數程式語言(FP,Functional Programming),
函數程式語言最重要的基礎是Lambda Calculus。它是基於OCaml的,而OCaml是基於ML函數程式語言。有時F# 和 OCaml 的程式是可以交互編譯的。

F#已經接近成熟,支援Higher-Order Function、Currying、Lazy Evaluation、Continuations、Pattern Matching、Closure、
List Processing、Meta-Programming。這是一個用於顯示.NET在不同編程語言間互通的程序設計,可以被.NET中的任意其它代碼編譯和調用。

2002年微軟開始由Don Syme帶領研發F#,從C#,LINQ和Haskell中獲取了經驗,2005年推出第一個版本,
2007年7月31日釋出1.9.2.9版。2007年底,微軟宣布F#進入產品化的階段。

資料來源:
http://zh.wikipedia.org/w/index.php?title=F_Sharp&variant=zh-hant
« 最後編輯時間: 一月 08, 2009, 05:50:49 pm 由 johnnylan »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1897
    • 檢視個人資料
回覆: [期末報告]-Preprocessor-95441159
« 回覆文章 #1 於: 一月 15, 2009, 02:30:34 pm »
OK! 18
已記錄
 

SimplePortal Classic 2.0.5