C语言条件处理命令与其他处理命令

#include<stdio.h>
#define TEST
//#开头 以if开头  必须以endif结尾
#ifdef TEST
void print_message()
{
printf("这里是定义的\n");
}
#else
void print_message
{
printf("这里是未定义的\n");
}
#endif
int main(int argc,char const *argv[])
{
print_message();
return 0;
}

结果:
在这里插入图片描述
gcc -E con.c //用于查看编译过程
在这里插入图片描述它只加载了”这里是定义的“这段代码,并没有加载”未定义“else中的代码,然后我们再下面加上#undef TEST

#include<stdio.h>
#define TEST

//取消已经定义的宏
#undef TEST    
//#开头 以if开头  必须以endif结尾
//#ifdef  if defined如果已经定义
//#ifndef   if not defined如果尚未定义
#ifdef TEST
void print_message()
{
printf("这里是定义的\n");
}
#else
void print_message
{
printf("这里是未定义的\n");
}
#endif





//这里是条件起始,必须加上条件,否则会导致预编译错误,其实是语法错误
#if 1
int a=100;
//如果前一个宏不成立,才会处理下面的,此时如果没有规定成立条件,会导致报错
#elif    //else if   需要加条件
int a=1000;
#else
int a =10000;
#endif
//一般来说,对于代码当中尚未开发完成的代码,而又可能会导致一些不可预见的问题
//但是又不想让程序无法执行,可以加上这样一个宏定义,代表代码仍需处理
#warning 这里会出现什么问题
//之戒抛出一个预编译错误
#error 这里会出现错误吗?
//这个指令功能非常强大
//这个叫非致命性警告,只有添加了 gcc -Wall c.c才会编译时显示出来,-Wall表示warning all所有的警告
#pragma warning("这是什么?")
//显示一个信息
#pragma message("这是一段信息")
//内存对齐方式,括号内指定内存对齐的字节数,用在结构体会多一点
#pragma pack(3)
int main(int argc,char const *argv[])
{
print_message();
return 0;
}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值