關于-#pragma

在所有的預處理指令中,#Pragma 指令可能是最復雜的了,它的作用是設定編譯器的狀態(tài)或者是指示編譯器完成一些特定的動作。#pragma指令對每個編譯器給出了一個方法,在保持與C和C ++語言完全兼容的情況下,給出主機或操作系統(tǒng)專有的特征。由于太復雜,在OC中主要在以下幾個方面使用到:


用途一:用于標識代碼

它們告訴Xcode編譯器,要在編輯器窗格頂部的方法和函數(shù)彈出菜單中將代碼分隔開,如下圖所示:


pragma

一些類(尤其是一些控制器類)可能很長,方法和函數(shù)彈出菜單可以便于代碼導航。此時加入#pragma 指令對代碼進行邏輯組織很有效果。

值得注意的地方
**#pragma mark – 的“-”后面不能有空格。
如果你的標志沒有出現(xiàn)在彈出菜單中,比如沒有分隔線出現(xiàn),請在Xcode菜單 “Preferences..”中的 “Code Sense”選項取消選中”Sort list alphabetically”即可。

用途二:用對OC警告的處理

最全忽略警告的代碼

 一個忽略整數(shù)警號的例子:
//#pragma clang diagnostic push
//#pragma clang diagnostic ignored "-Wunused-variable"
  int a;
//#pragma clang diagnostic pop

warnings是編碼中很重要的一個環(huán)節(jié),編譯器給出合理的warning能幫助開發(fā)者找到自己代碼的問題,防止很多bug產(chǎn)生。 默認用XCode創(chuàng)建一個工程,會自動開啟一些重要的warnings,但是更多的時候,我們需要編譯器更完整的提醒。
iOS開發(fā)采用Clang編譯器。LLVM是一個開源的編譯器架構,Clang是LLVM的一個編譯器前端。
更多關于 Clang 和 LLVM請點擊: iOS——LLVM、Clang淺析

想了解更多關于#pragma請移步到以下文章:

#pragma預處理命令
談談Objective-C的警告

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 2000年,伊利諾伊大學厄巴納-香檳分校(University of Illinois at Urbana-...
    星光社的戴銘閱讀 16,281評論 8 180
  • 編譯器做些什么? 本文主要探討一下編譯器主要做些什么,以及如何有效的利用編譯器。 簡單的說,編譯器有兩個職責:把 ...
    評評分分閱讀 1,248評論 1 5
  • 前言 通過閱讀別人的優(yōu)秀源碼,你會發(fā)現(xiàn)別人的開源API設計中,有一些宏你是經(jīng)常忽略的,或者你不知道的。通過這些宏,...
    gitKong閱讀 5,302評論 5 41
  • 【每日一談心】:QQ,談心時間到咯 QQ說:媽媽談什么心呀?今天我在幼兒園很乖的,爸爸去做爸爸的事情媽媽去做媽媽的...
    674e09b5464a閱讀 153評論 0 0
  • 有人說:“過去在記憶中灰飛煙滅,重要的是眼前,但更重要的是生活以及生存!” 如果,你一直活在過去的世界里,...
    冬一縷陽光閱讀 2,946評論 2 3

友情鏈接更多精彩內容