您的位置:首页 > 编程语言 > C语言/C++

IOS开发---C语言-㉑预处理指令:宏定义、条件编译、文件包含

2014-11-29 16:40 751 查看
/*

1.所有的预处理指令都是以#开头

2.预处理指令分3种

1> 宏定义

2> 条件编译


3> 文件包含

3.预处理指令在代码翻译成0和1之前执行

4.预处理的位置是随便写的

5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用

6.宏名一般用大写或者以k开头,变量名一般用小写

*/

1.宏定义

练习1:不带参数的宏

#include <stdio.h>

//#define kCount 4

int main()

{

char *name = "COUNT";

printf("%s\n", name);

#define COUNT 4

int ages[COUNT] = {1, 2, 67, 89};

for ( int i = 0; i<COUNT; i++) {

printf("%d\n", ages[i]);

}

// 从这行开始,COUNT这个宏就失效

#undef COUNT

int a = COUNT;

return 0;

}

练习2:带参数的宏

#include <stdio.h>

#define sum(v1, v2) ((v1)+(v2))

//这里写的比较严谨

#define pingfang(a) ((a)*(a))

int main()

{

// pingfang(5+5) (10*10)

// pingfang(5+5)

// pingfang(5+5) (35)

// pingfang(5+5)/pingfang(2)

int c = pingfang(5+5)/pingfang(2);

printf("c is %d\n", c);

return 0;

}

2.条件编译

#include <stdio.h>
// 只要写了#if,在最后面必须加上#endif
//#define A 5
int main()
{
//#ifndef A //如果没定义A这个宏
//#ifdef A //如果定义了A这个宏
printf("哈哈\n");
#endif
//int a = 10;
/*
if (a == 10)
{
printf("a是10\n");
}
else if (a == 5)
{
printf("a是5\n");
}
else
{
printf("a其他值\n");
}*/
/*
#if (A == 10)
printf("a是10\n");
#elif (A == 5)
printf("a是5\n");
#else
printf("a其他值\n");
#endif
*/
return 0;
}

3.文件包含

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐