在objective-c中,有一種類似於jsp小指令碼的東西,叫做巨集。這種東西實際上就是在編譯是才對實際使用的值與物件進行確認,主要針對的是編譯過程。
預編譯的乙個使用是
#define 巨集名稱 值
在以上是定義乙個類似於記憶體的東西。巨集名稱是自定義的。可以等同於變數名,有不成文的約定是使用全部大寫的字母。 後面的值可以標量,也可以函式**。非常靈活
當定義好了以後。這就是乙個預編譯常量。開始在**的任何地方使用。
以上只是乙個最基本的還可以這樣使用
#define 巨集名稱(x,y) nslog(@"",(x),(y));
這樣。只需要在下面的**中呼叫如下
巨集名稱(1,2);
即可呼叫以上的列印;
還有以下專門為巨集準備的內建巨集變數
__file__ 獲取當前執行檔案位置
__line__ 獲取當前呼叫行數
__date__ 獲取當前日期
__time__ 獲取當前時間
這些都是在編譯時獲取的。所以自定義的變數不可使用"__"開頭和結尾
前面講過巨集不僅可以定義常量,還可以定義函式。那麼當函式不是一行時。可以使用 \+enter 來實現多行函式
還有乙個小技巧是。可以獲取乙個變數的變數名
#define 巨集名稱(value) nslog(@"%s---%@",#value,value);
如上:#value列印出來的是變數的變數名稱,value可以列印出變數的值。用於內部檢查非常適合。
最後介紹的是
#ifdef 巨集名稱
code
#else if 巨集名稱
code
#else
code
#endif
這樣就可以實現在預編譯階段區分一些**。如果是測試環境,和正式環境區分使用就可以通過這個方法來實現。
其實內建巨集還有很多。具體使用的時候可以到gcc文件查閱
前端基礎之十 關於文字和顏色
1 涉及到的長度單位 1 px畫素 這個是我們最常用的單位,我們螢幕就是乙個乙個畫素點構成的,乙個畫素點就是乙個畫素。不同的螢幕乙個畫素的大小是不同的。2 百分比 當設定乙個百分比時,瀏覽器會自動根據其父元素的屬性來計算大小。優點是,當父元素的屬性發生改變時,子元素按照比例相應改變。百分比相對的屬性...
Django學習筆記(十) 關於中介軟體的介紹
在django處理的請求的各個處理階段,可以插入自己的邏輯 介於request與response處理之間的一道處理過程 輕量級 在全域性上改變django的輸入 輸出 從瀏覽器發出乙個請求requset,得到乙個響應後的內容httpresponse 每乙個請求都是先通過中介軟體中的process r...
十 關於MySQL 標識列,你該了解這些!
又稱為自增長列 含義 可以不用手動的插入值,系統提供預設的序列值 特點 1 標識列必須和主鍵搭配嗎?不一定,但要求是乙個key 2 乙個表可以有幾個標識列?至多乙個!3 標識列的型別只能是數值型 4 標識列可以通過 set auto increment increment 3 設定步長 可以通過 手...