首页 > 其他分享 >条件编译

条件编译

时间:2023-02-28 10:59:02浏览次数:25  
标签:gcc MIN MAX xxx 编译 str 条件

 

 条件编译的作用:

  1、代码裁剪(不更改原有代码)

#include <stdio.h>
#include <string.h>
void test01()
{
 char str[128] = "";
 fgets(str, sizeof(str), stdin);
 str[strlen(str) ‐ 1] = '\0';

 int i = 0;
 while (str[i] != '\0')
 {
 #ifdef MAX_TO_MIN
 //将大写字母转换小写字母
 if (str[i] >= 'A' && str[i] <= 'Z')
 {
 str[i] += 32;
 }
 #else
 //将小写字符转换成大写字母
 if (str[i] >= 'a' && str[i] <= 'z')
 {
 str[i] ‐= 32;
 }

 #endif
 i++;
 }
 printf("%s\n", str);
 return;
 }

    以上代码通过 gcc xxx.c 编译的时候就只会编译  #else 与 #endif  之间的一块代码,如果使用 gcc xxx.c -D MAX_TO_MIN 编译的时候就只会编译 #ifdef MAX_TO_MIN 与#else 之间的代码。也可以通过使用  gcc xxx.c -D MAX_TO_MIN=0 或  gcc xxx.c -D MAX_TO_MIN=1 来决定编译那一块代码。

  2、用于防止头文件重复包含

    方式一(推荐使用)

    方式二(Windows的方式)

 

标签:gcc,MIN,MAX,xxx,编译,str,条件
From: https://www.cnblogs.com/yachifeng/p/17163180.html

相关文章

  • BIP查询框添加查询条件
    //搜索框添加查询条件viewModel.on("afterMount",function(data){letagentId=viewModel.getParams().query.agentId;//获取传值(其他页面......
  • excel 根据某单元格的值设置整行颜色(条件格式)
    场景任务排期的时候,优先级不同,设置成为不同的背景色,看起来直观很多。操作过程假设单元格内容为如下:需求1高需求2中需求3低需求4不做需求5完成框选作用区域(就是所有文......
  • 明明改了设备树文件,编译时没有编译
    将stm32mp157a-i2cmp15xbn-lcd070p1024c.dts中某行;去掉了,编译时居然没报错,这是不对的,肯定要报错的;原因:window下有一份linux内核代码,ubuntu下也有一份linux内核代码,我改的......
  • DQL基础查询/条件查询
    基础查询:selectname,agefromstu; --查两列select * from stu;--查全部,不推荐selectdistinctaddressfromstu;--......
  • JS 代码片段 / 预编译/预解析 /执行上下文/ECG/EC/ECS/GO/VO/AO
    代码段概念一个script就是一个代码段在一个页面中可以有多个代码段每一个代码段,彼此独立的,如果上面的代码段报错了,不会影响下一个代码段referenceError引用错......
  • JS 代码片段 / 预编译/预解析 /执行上下文/ECG/EC/ECS/GO/VO/AO
    代码段概念一个script就是一个代码段在一个页面中可以有多个代码段每一个代码段,彼此独立的,如果上面的代码段报错了,不会影响下一个代码段referenceError引用错......
  • gcc编译过程
    编译过程:预处理、编译、汇编、链接预处理:包括宏替换、删除注释、头文件包含、条件编译(这个阶段不会报语法错误)gcc-Ehello.c-ohello.i编译:将预处理......
  • springboot条件注册Condition注解
    环境识别importorg.springframework.context.annotation.Condition;importorg.springframework.context.annotation.ConditionContext;importorg.springframework.c......
  • 02 条件
    #2、什么是条件?什么可以当做条件?为何要要用条件?#第一大类:显式布尔值#2.1条件可以是:比较运算符#age=18#print(age>16)#条件判断之后会得到一个布尔值#2.1条......
  • 【ubuntu20.04】编译 v83x_pillow_0.7.2 会被链接到 /usr/include/x86_64-linux-gnu
    有点愚蠢,记录一下,先编过去,然后再把x86_64-linux-gnu移回来,估计是我环境变量脏了。juwan@juwan-n85-dls:~/v831/out/v831-sipeed/compile_dir/target/pypi/Pillow-7.2.0$......