//
// main.m
// C08 高级指针-2
//
// Created by 康亮亮 on 15/10/16.
// Copyright (c) 2015年 Darling.com. All rights reserved.
//
#import <Foundation/Foundation.h>
#pragma mark 普通宏
#define kMax 33 // 宏定义: 在程序中,只要遇到了kMax, 在编译之前会自动替换为后边的数
#define SUM(A,B) ((A)*(B)) // 带参宏: 只是将参数原样替换,所以一般情况下,要在表示参数的字符上,添加小括号,防止出现运算符优先级问题
int main(int argc, const char * argv[]) {
// 使用无参宏(没有参数的宏)kMax
int a = 20 * kMax;
printf("%d\n", a);
// 使用带参宏
int b = SUM(a, 2);
printf("%d\n", b);
#pragma mark 条件编译指令
// 第一种形式:如果定义了标示符,则编译第一段代码,否则编译第二段代码
//#ifdef kMax
// printf("定义过了\n");
//#else
// printf("没有定义\n");
//#endif
// 第二种形式:如果没有定义标示符,则编译代码一,否则编译代码二
//#ifndef kMax
// printf("没有定义kMax\n");
//#else
// printf("已经定义过了kMax\n");
//#endif
// 第三种形式:如果常量表达式结果非0,编译器编译代码一,否则编译代码二
#if 2
printf("常量表达式非零\n");
#else
printf("常量表达式为零\n");
#endif
/*
一、结构体指针(如何访问成员?)
*p.
->
二、结构体数组与指针(如何访问某个元素的成员?)
->
三、条件编译(如何进⾏条件编译?)
*/
return 0;
}