20-C语言:第21天笔记

C语言:第21天笔记

内容提要

  • 预处理
  • 库文件
  • 文件I/O
    • 标准I/O

预处理

预处理功能

条件编译
概念

**定义:**根据设定的条件选择待编译的语句代码。

预处理机制:将满足条件的语句进行保留,将不满足条件的语句进行删除,交个下一步编译。

语法:

  • 语法1:

    根据是否找到标记,来决定是否参与编译(标记存在为真,不存在为假

    #ifdef 标记   // 标记 一般使用宏定义
    ... 语句代码1
    #else
    ... 语句代码2
    #endif
    

    举例:

    #define DEBUG 1  
    #ifdef DEBUG
        printf("调试模式!\n"); // 保留
    #else
        printf("产品模式!\n"); // 删除
    #endif
    

    说明:printf("调试模式!\n");printf("调试模式!\n");只能保留一个。

    undef 取消已定义的宏(使其变为未定义状态)。

    #define DEBUG 1  // 定义宏
    #undef DEBUG     // 取消定义的宏
    #ifdef DEBUG
        printf("调试模式!\n"); // 删除
    #else
        printf("产品模式!\n"); // 保留
    #endif
    
  • 语法2:

    根据是否找到标记,来决定是否参与编译(标记不存在为真,存在为假

    #ifndef  标记
    ... 语句代码1
    #else
    ... 语句代码2
    #endif
    

    举例:

    #define DEBUG 1  
    #ifndef DEBUG
        printf("调试模式!\n"); // 删除
    #else
        printf("产品模式!\n"); // 保留
    #endif
    
  • 语法3:

    根据表达式的结果,来决定是否参与编译(表达式成立为真,不成立为假

    // 单分支
    #if 表达式
    ... 语句代码1
    #endif
        
    // 双分支
    #if 表达式
    ... 语句代码1
    #else
    ... 语句代码2
    #endif
        
    // 多分支
    #if 表达式1
    ... 语句代码1
    #elif 表达式n
    ... 语句代码n
    #else
    ... 语句代码n+1
    #endif
    
案例
案例1

#include <stdio.h>

// 定义一个条件编译的标记
#define LETTER 1 // 默认是大写

int main(int argc, char *argv[])
{
   
   
	// 测试用的字母字符串
	char str[26] = "C Language";
	
	char c;
	
	int i = 0;
	
	// 遍历获取每一个字符
	while ((c = str[i]) != '\0')
	{
   
   
#if LETTER
		if (c >= 'a' && c <= 'z')
		{
   
   
			c -= 32; // 大写
		}
#else
		if (c >= 'A' && c <= 'Z')
		{
   
   
			c += 32; // 小写
		}
#endif
		printf("%c",c);
		i++;
	}
    printf("\n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值