首页 > 代码库 > c语言(预编译)(precompile)
c语言(预编译)(precompile)
// main.m
// 1-26课堂笔记
//讲师: 小辉
//笔者: 王学文
// Created by lanouhn on 15/1/26.
// Copyright (c) 2015年 lanouhn. All rights reserved.
// 预编译( Precompile),
#import <Foundation/Foundation.h>
#define A 12
#define SIZE 150
#define ADD(A, B) A + B
#define MAXVALUE(A, B) A > B ? A : B
#define kMAXVALUE(A, B) A > B ? A : B
#define kMAXVALUE1(A, B) (A > B ? A : B)
#define kMAXVALUE2(A, B) ((A) > (B) ? (A) : (B))
#define kMAXVALUE3(A, B) ({int temp1 = (A); int temp2 = {B}; temp1 > temp2 ? temp1 : temp2;})
#define kMAXVALUE4(A, B) ({__typeof__(A) temp1 = (A); __typeof__(B) temp2 = {B}; temp1 > temp2 ? temp1 : temp2;})
#pragma mark - 打印helloWorld
int main(int argc, const char * argv[]) {
//预编译: 提前编译
//程序编译过程
//1.预编译
//2.编译成汇编文件
//3.编译成目标文件
//4.目标文件和库文件结合成可执行文件
//宏定义,在预编译期间执行
//定义格式: #define 名字 表达式
int a = 12;
int b = A;
printf("%d %d\n", a, b);
//宏定义,只在编译期间替换(不是函数)
//
printf("%d\n", MAXVALUE(10, 5));
int max = kMAXVALUE2(3, 4 > 5 ? 4 : 5);
printf("%d\n", max);
int temp = 3;
int max3 = kMAXVALUE3(temp++, 2);
printf("max3 = %d\n", max3);
printf("temp = %d\n", temp);
//c99中的复合语句;
int i = ({
int k = 3;
int j = 5;
k > j ? k : j;
});
printf("i = %d\n", i);
#warning 这是个测试数据!
int aaa = 100;
//条件编译
int d = 0;
//1.
#if 1
d = 100;
#endif
//2.
#if 1
d = 100;
#else
d = 200;
#endif
//3.
#if 0
d = 100;
#elif 1
d = 200;
#else
d = 300;
#endif
//4.
#ifdef MAXVALUE
d = 100;
#endif
//5.
#ifndef AAA //只执行一次
#define AAA
d = 100;
#endif
//#error 这是个错误
printf("%d\n", d);
return 0;
}
c语言(预编译)(precompile)