麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

預處理程序之#define的使用

2019-11-14 18:30:48
字體:
來源:轉載
供稿:網友
 1 #import <Foundation/Foundation.h> 2  3 /** 1.define語句:預定義名稱右邊的所有字符都會被預處理程序替換到程序中 */ 4 /** 5  * 使用注意: 6  * 1.預定義名稱不是變量,不能給它賦值,除非替換指定值的結果實際上是一個變量; 7  * 2.語句末尾不能出現分號“;”; 8  * 3.預處理程序定義的右面不必是合法的Objective-C表達式,如 #define AND && 9  * 4.預定義的值可以引用另一個預定義的值,如10  #define PI 3.14159265411  #define TWO_PI 2.0 * PI // 兩個表達式前后顛倒也是合法的12  [規則:在程序中使用預定義名稱時,只要所有的符號都是定義過的,那么就可以在定義中引用其他預定義的值]13  */14 15 /** 命名規范:預定義的名稱都用大寫,如PI,或者在定義之前加k,但k之后的字符并不全部大寫,如kMaxValues; */16 17 /** 1.1 簡單使用 */18 #define PI 3.14159265419 #define TWO_PI 2.0 * PI20 21 /** 1.2 檢測變量year是不是閏年 */22 /**23 #define IS_LEAP_YEAR year % 4 == 0 && year % 100 != 0 /24         || year % 400 == 0 // if (IS_LEAP_YEAR)25 // 上面的define實際上是這個意思: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)&hellip;…26 */27 28 /** 1.3 將IS_LEAP_YEAR定義為帶有一個名為y的參數,來判斷任何一年是否為閏年 */29 #define IS_LEAP_YEAR(y) y % 4 == 0 && y % 100 != 0 /30         || year % 400 == 0 // 這里沒有定義參數y的類型,因為這里僅執行字面文本替換,并沒有調用函數,注意:預定義名稱和參數列表的左括號之間不允許空格31 // if (IS_LEAP_YEAR(nextYear)) 用來判斷nexYear的值是不是閏年32 // 上面的define實際上是這個意思: if (nextYear % 4 == 0 && nextYear % 100 != 0 || nextYear % 400 == 0) ……33 34 /** 1.4 帶參數的宏定義的一個“小陷阱” */35 #define SQUARE(x) x * x36 // y = SQUARE(v) 等價于 y = v ^ 2;而y = SQUARE(v + 1) 等價于 y = v + 1 * v + 1,而不是等于 y = (v + 1) * (v + 1)。因為與處理程序對宏定義的參數是實行文本替換的,要想解決這個問題,需要加括號, #define SQUARE(x) ((x) * (x))37 38 /** 1.5 練習:創建個分數 */39 #define MakeFract(x,y) ([[Fraction alloc] initWith: x over: y])40 // 創建分數1/3 myFract = MakeFract(1,3);41 42 /** 1.6 注意:運算符的優先級的問題43   * &運算符是按位AND運算符,它的優先級低于宏中使用的>運算符。如果宏定義中沒有括號,>運算符將在按位AND之前求值。44   * 題: #define IS_LOWER_CASE(x) ( ((x) >= 'a') && ((x) <= 'z') )45  */46 47 48 @interface Circle : NSObject49 @PRoperty(nonatomic, assign) int radius; // 圓的半徑50 @property(nonatomic, assign) int year;51 - (double)area;52 - (double)circumference;53 @end54 55 56 @implementation Circle57 - (double)area58 {59     return PI * _radius * _radius;60 }61 - (double)circumference62 {63     return 2.0 * PI * _radius;64     return TWO_PI * _radius;65 }66 @end67 68 69 int main(int argc, const char * argv[]) {70     @autoreleasepool {71         Circle *c = [[Circle alloc] init];72         c.radius = 5;73         NSLog(@"圓的面積是%f平方米,圓的周長是%f米", [c area], [c circumference]);74     return 0;75     }76 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99视频有精品视频高清 | 一级看片免费视频 | 国产人成精品综合欧美成人 | 国产欧美亚洲精品a | 91看片免费版 | 久久99精品视频在线观看 | av电影免费在线 | 久久精品一区二区三区国产主播 | 天天夜天天操 | 欧美一级做一级爱a做片性 91在线视频观看 | 精品国产91久久久久久浪潮蜜月 | 在线日韩av电影 | 欧美成人精品一区二区 | 夜夜夜精品视频 | 一区二区三区日韩精品 | 成人在线观看小视频 | 国产精品色在线网站 | 视频一区二区中文字幕 | 久久毛片 | 精品中文字幕久久久久四十五十骆 | 一级做a爱片性色毛片 | 毛片免费试看 | 黄色网址在线视频 | 狠狠撸电影 | 国产色片在线观看 | 国产精品久久久久久影院8一贰佰 | 精品久久久久久国产三级 | 成人国产精品一区二区毛片在线 | 成人视屏在线 | 91美女视频在线观看 | 国产一区二区三区视频免费 | 国产一级大片 | 国产成人在线视频播放 | www.guochanav.com| 国产精品自拍99 | 午夜国产精品成人 | av免费入口 | 国产精品欧美久久久久一区二区 | 欧美性生交xxxxx久久久缅北 | 免费欧美| 精品国产99久久久久久宅男i |