程序的编译(下)

3.预处理详解

3.1预定义符号:

__func__, __FILE__, __LINE__, __DATE__, __TIME__

int main()
{
	int i = 0;
	FILE* pf = fopen("log.txt", "w");
	if (pf == NULL)
	{
		return 1;
	}
	for (i = 0; i < 10; i++)
	{
		fprintf(pf,"name:%s file:%s line:%d date:%s time:%s i=%d\n", __func__, __FILE__, __LINE__, __DATE__, __TIME__, i);
	}
	fclose(pf);
	pf = NULL;
}

打开对应路径下的文件,就可以发现

此外,__stdc__//如果编译器遵循ansi c,其值为1,否则未定义

3.2#define

1.定义标识符常量

例如:

#define NUM 100
#define STR "abcdef"
int main()
{
	int num = NUM;
	char* str = STR;
}

或者

#define reg register
int main()
{
	int reg num = 100;
}

2.定义宏:#define允许把参数替换到文本中,这种现象通常称为宏

宏的声明方式:#define name(parament-list) stuff

#define MAX(x,y) ((x)>(y)?(x):(y))
int main()
{
	int a = 10;
	int b = 20;
	int c = MAX(a, b);
	printf("%d\n", c);
}

或者

#define SQUARE(x) ((x)*(x))
int main()
{
	int a = 9;
	int r = SQUARE(a + 1);
	printf("%d\n", r);
}

注意:

1.宏的定义末尾不能出现;

2.参数列表的左括号必须与name紧邻

3.不要吝啬括号

3.#define替换规则

 4.宏和函数对比

宏通常被应用于执行简单的运算,比如刚才所写的找出两个数较大的一个

优点:此时,宏比函数在程序的规模和速度上更胜一筹,且宏是类型无关的。

缺点:宏无法调试;如果宏比较长,会大幅度增加程序的长度;宏可能会带来运算符优先级的问题

5.条件编译

常见的条件编译指令:

1.#if  #endif

int main()
{
	int arr[10] = { 0 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		arr[i] = i + 1;
#if 1
		printf("%d ", arr[i]);
#endif
	}
}

 2.#if #elif #else #endif

#define NUM 2
int main()
{
#if NUM==1
	printf("hehe\n");
#elif NUM==2
	printf("haha\n");
#else
	printf("heihei\n");
#endif
}

3.#ifdef #endif

#define MAX 0
int main()
{
//#if defined(MAX)
//	printf("hehe\n");
//#endif
#ifdef MAX
	printf("hehe\n");
#endif
}
//判断宏是否被定义了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值