C语言条件编译

文章目录

  • 🍊自我介绍
  • 🍊条件编译(为多文件编程铺路)
    • 🍊宏是否定义的判断


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~

a


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群一名“创始团队·嘉宾” ,现在我来为大家介绍一下有关嵌入式方面的内容。在进入介绍之前,可能有一些小伙伴不了解易编程·终身成长社群;想要进一步了解社群的小伙伴可以点击下方链接自行跳转至关于社群的介绍:

易编程·终身成长社群介绍 :
https://blog.csdn.net/weixin_74300052?spm=1011.2266.3001.5343

在这里插入图片描述


🍊条件编译(为多文件编程铺路)

格式:
#if 宏名
	C语言1#else
	C语言2#endif
功能:判断宏名是否为真,为真则编译C语言代码1.否则编译C语言代码2

穿插小知识:

#include <stdio.h>

//argc		命令行传递参数的个数
//argv[0]	命令行传递第1个参数
//argv[1]	命令行传递第2个参数
//argv[2]	命令行传递第3个参数
//...
int main(int argc,const char *argv[])//在linux终端中输入main后按下tab键就会出现(int argc,const char *argv[])
{
	printf("argc = %d\n",argc);
	prrintf("argv[0] = %d\n",argv[0]);
	prrintf("argv[1] = %d\n",argv[1]);
	prrintf("argv[2] = %d\n",argv[2]);
	return 0;
}

命令行和命令行参数解释:
在这里插入图片描述
代码解释:

#include <stdio.h>
int main(int argc,const char *argv[])
{
	int a[5] = {10,20,30,40,50};
	int i = 0;
	int *p = a;
#if 0 // 非零执行if 下面的语句,零执行else下面的语句
	for(i = 0;i < 5;i++)
	{
		printf("%d ",a[i]);
	}	
	printf("\n");
#else
	for(i = 0;i < 5;i++)
	{
		printf("%d ",p[i]);
	}
	printf("\n");
#endif
	return 0;

}

🍊宏是否定义的判断

//if no define
#ifndef 宏名 判断宏名是否没有定义
	C语言语句;
#endif
功能:若是没有定义,会执行对应的C语言语句,若是定义了则不执行

代码解释:

#include <stdio.h>
#define DEBUG  //宏存在

int main(int argc,const char *argv[])
{
	int a[5] = {10,20,30,40,50};
	int i = 0;
	int *p = a;
#ifndef DEBUG  //如果宏定义了执行else语句,如果没有定义执行下面的语句
	printf("first\n");
	for(i = 0;i < 5;i++)
	{
		printf("%d ",a[i]);
	}	
	printf("\n");
#else//等价于注释
	printf("second\n");
	for(i = 0;i < 5;i++)
	{
		printf("%d ",p[i]);
	}
	printf("\n");
#endif
	return 0;

}

运行结果:

second
10 20 30 40 50


  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值