LinuxC 预处理命令

  8.1 宏定义   

   宏:C语言标准允许在程序中用一个标识符来表示一个字符串,成为宏。标识符为宏名,在

编译预处理时,将程序中所有的宏名用相应的字符串来替换,这个过程称为宏替换,宏分为两种:

无参数的宏和有参数的宏。

1.无参数宏

无参数宏定义的一般形式为:

#define 标识符字符串

“#”代表本行是编译预处理命令。define是宏定义的关键词,标识符是宏名。字符串是宏名所代替的内容,

可以是常数,表达式等。


// Test.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"

#define _pi_ 3.1415926*2*2

int _tmain(int argc, _TCHAR* argv[])
{
	printf("%f",_pi_);
	return 0;
	getchar();
}
输出半径为2圆的面积。

2.有参数宏:类似于有参数的函数,一般形式为:

#define 标识符(形参表)字符串
// zz.cpp : 定义控制台应用程序的入口点。



#include "stdafx.h"
#define MAX(x,y)(x>y?x:y)


int _tmain(int argc, _TCHAR* argv[])
{
	int a=1,b=2,max;
	max=MAX(a,b);
	printf("the max between(%d,%d) is %d\n",a,b,max);
	return 0;
}

运行结果:the max between(1,2) is 2

8.2 文件包含

文件包含是指把指定文件的全部内容包括到当前源程序文件中。

文件包含命令的一般形式为:

#include "文件名"

或

#include <文件名>

作用:将制定文件包含在当前文件中,插入至文件包含相应位置处。

8.3 条件编译

     条件编译:指在特定的条件下,对满足条件和不满足条件的情况分别进行处理——满足

条件时编译某些语句,不满足条件时编译另一些语句。

模式一:

#ifndef 标识符

程序段1

#endif

含义:如果没有定义标识符,则编译程序段1(程序段1可以是语句组,也可以命令行。)

模式二:

#ifndef 标识符

程序段1

#else

程序段2

#endif

含义:如果没有定义标识符,就编译程序段1,否则编译序段2。

模式三:

#ifdef 标识符

程序段1

#endif

含义:如果定义了标识符,就编译程序段1,否则就不编译该程序段。

模式四:

程序段

#else

程序段2

#endif

含义:如果定义了标识符,就编译程序段1,否则编译序

模式五:

#if 表达式

程序段1

#endif

含义:如果表达式成立,就编译程序段1,否则就不编译该程序段。

模式六:

#if 表达式

程序段1

#else

程序段2

#endif

含义:如果表达式成立,就编译程序段1,否则编译序段2








评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值