詳解Objective-C學習筆記之預處理程序
Objective-C學習筆記之預處理程序是本文要介紹的內容,主要介紹了預處理程序中語句的使用方法,預處理程序語句以(#)標記。來看詳細內容。
一、#define
1、更高級的定義類型
給符號名稱指派表達式和其他任何東西。如:
- #define TWO_PI 2*3.141592654,#define AND &&
預處理程序假設定義包含在程序的一行中。如果需要第二行,那么上一行的***一個字符必須是反斜線符號“\”。如:
- #define IS_LEAP_YEAR(y) y%4==0&&y0!=0\
- ||y@0==0
可帶參數(shù)。預定義(definition)通常稱作“宏”。
2、#運算符
如果在宏定義中參數(shù)之前放置一個#,那么在調用該宏時,預處理程序將根據(jù)宏參數(shù)創(chuàng)建C風格的常量字符串。如:
- #define str(x) #x
- str(testing)——"testing"
- str("hello")——"\"hello"\"
3、##運算符
用于把兩個標記(token)連在一起。它的前面(或后面)是宏的參數(shù)名稱。預處理程序使用調用該宏時提供的實際參數(shù),并且根據(jù)該參數(shù)和##之后(或之前)的標記創(chuàng)建單個標記。如:
- #define printx(n) printf("%i\n",x##n);
- printx(20)——printf("%i\n",x20);
二、#import語句
.h->頭文件(或包含文件)。
設置一組#import語句,將其輸入到一個xxx.h的獨立文件中,若需要則使用預處理程序指令:
#import "xxx.h"。
#import <……>導致預處理程序只在特殊的"system"頭文件目錄中尋找包含文件,當前目錄不會被搜索。
#import "……"預處理程序在一個或者多個文件目錄。
三、條件編譯。
通常用于創(chuàng)建可以在不同計算機系統(tǒng)上編譯運行的程序,經(jīng)常用來開關程序中的各種語句。
1、#ifdef、#endif、#else和#ifndef語句
從一個計算機系統(tǒng)上移植到另一個計算機系統(tǒng)上。
2、#if和#elif預處理程序語句
表達式結果非零——#else、#elif或#endif為止的所有后續(xù)行,否則跳過它們。
特殊運算符:#define (name) 也能用在#if語句中。
3、#undef語句
使一些已經(jīng)定義的名稱稱為未定義的。
小結:詳解Objective-C學習筆記之預處理程序的內容介紹完了,希望本文對你有所幫助!