#ifdef、#ifndef、#else、#endif執行條件編譯,

來源:互聯網
上載者:User

#ifdef、#ifndef、#else、#endif執行條件編譯,
     我們開發的程式不只在pc端運行,也要在移動端運行。這時程式就要根據機器的環境來執行選擇性的編譯,如對PC端編譯PC端的程式,對移動端編譯移動端的程式,這裡我們就可以用兩組條件編譯。     我們先來瞭解下#ifdef ...#endif;文法格式是:#ifdef 宏名字 |#ifdef 宏名字//任意代碼 |//任意代碼#endif |#else|//任意代碼|#endif上面的兩種格式是,如果指定了宏,就會執行#ifdef ... #endif中的代碼。

////  main.m//  Hong_Test////  Created by 程英暾 on 2017/3/20.//  Copyright  2017年 程英暾. All rights reserved.//#import <Foundation/Foundation.h>#define iPadint main(int argc, const char * argv[]) {    @autoreleasepool {        #ifdef iPad        NSLog(@"this is ipad");#else        NSLog(@"this is iphone");#endif                        // insert code here...        NSLog(@"Hello, World!");    }    return 0;}
執行的結果就是:2017-03-20 22:54:22.010569 Hong_Test[8061:318230] this is ipad我們來分析一下,首先我們定義了宏#define iPad,接下來程式會對宏進行尋找,找到後,就會根據我們定的條件編譯需要編譯的程式。其實和if...else...if差不多。但為什麼會有這種些,事物存在就有存在意義,有兩點,1.我們在偵錯工具時會寫很多語句,在正式布時只要去掉宏就可以了,其二這種條件編譯可以減少程式的體積。下面我們用#if...#else...#endif來進行一個執行個體操練,結束今天的學習
 ////  main.m//  Hong_Test////  Created by 程英暾 on 2017/3/20.//  Copyright  2017年 程英暾. All rights reserved.//#import <Foundation/Foundation.h>#define age 30int main(int argc, const char * argv[]) {    @autoreleasepool {        #if age>60        NSLog(@"老人");#elif age>40        NSLog(@"中年人");#elif age>20        NSLog(@"青年");#endif         }    return 0;}

結果:青年

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.