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