首页 > 其他分享 >【C Language Program】预处理指令

【C Language Program】预处理指令

时间:2024-11-12 16:18:43浏览次数:3  
标签:Language MAX endif else Program printf include 预处理

学习目标:

  • 掌握C语言的预处理指令以及使用

学习步骤:

  1. 预处理指令的概括
  2. 预处理指令的使用
  3. 总结

主要内容:

预处理指令的概括

含义指令
导入模块#include
宏定义#define #undef
条件编译#if #else #elif #endif
条件定义#ifdef #ifndef

预处理指令的使用

#include

#include用于在文件中导入某一模块(使用模块中的定义或者函数)。

#include <stdio.h> /*导入stdio.h 这个标准输入输出*/

/*头文件一般只能包含以下内容*/
/*变量,宏定义,函数声明,类声明,类型定义,其它头文件的引用*/

int main(){
	printf("hello world"); /*printf函数是stdio.h所包含的函数声明*/
	return 0;
}

#define #undefine

#define 宏定义主要用于文本替换,其会在编译前的预处理阶段处理完,其生命周期从定义开始到文件尾部结束,或者到#undefine结束。

// Include
#include <stdio.h>

// Define
#define PI 3.14

int main(void){
	float r = 0, s = 0;	/*定义半径r, 面积s*/
	printf("请输入半径以求面积(回车结束):");
	scanf("%f", &r);
	s = PI*r*r;
	printf("圆的面积为%f",s);
	return 0;
} 

#undef PI
/*此时 PI 不再可用了*/

#if #else #elif #endif

#if #else #elif #endif的使用和if-else十分类似,但是#elifelse if的简写,条件编译语句被满足之后将会执行下面的语句,且#if#endif总是一起使用的。

// Include
#include <stdio.h>

// Define
#define MAX 100

int main(void){

	#if MAX == 100 /*#if 要求判断条件为整型常量表达式故而不能含有变量*/
	printf("MAX存在");
	
	#elif MAX == 90
	printf("MAX存在,但不可用");
	
	#else
	printf("MAX不存在");
	
	#endif
	return 0;
}

#ifdef #ifndef

#ifdef #ifndef 同上面的条件编译类似,但是判断的是是否定义,下面我们使用代码来解释。

// Include
#include <stdio.h>

// Define
#define MAX 100

int main(void){
	
	#ifdef MAX
	printf("MAX已定义");
	
	#else
	printf("MAX未定义");

	#endif

	/*====================================*/
	
	#undef MAX

	#ifndef MAX
	printf("MAX未定义");
	
	#else
	printf("MAX已定义");

	#endif
	
	return 0;
}

学习总结:

预处理指令的处理过程是在链接编译之前,主要作用是替换文本,选择编译的代码等,我这里为了演示方便,将预处理指令写在了main函数当中,大家切勿效仿我的行为,这种写法是十分糟糕的。

标签:Language,MAX,endif,else,Program,printf,include,预处理
From: https://blog.csdn.net/SuilZuilZ/article/details/143706023

相关文章

  • .NET 公共语言运行时(Common Language Runtime,CLR)
    .NET的公共语言运行时(CommonLanguageRuntime,CLR)是.NETFramework和.NETCore的核心组件,负责运行和管理.NET程序。CLR提供了一个高效、安全和稳定的执行环境,支持多种编程语言并处理各种系统级的任务。下面是对.NETCLR的详细介绍,包括其功能、架构、以及如何与.NET应......
  • Decision Science Programming
    DecisionScience:ProgrammingAssignmentHaideCollege,AutumnSemester2024Duedates:Milestone(quiz):7November2024,23:59.[5%coursemark]Submission(code):14November2024,23:59[20%coursemark]PurposeThepurposeofthisassessment......
  • LLMOps Essentials: A Practical Guide to Operationalizing Large Language Models
    LLMOpsEssentials:APracticalGuidetoOperationalizingLargeLanguageModelshttps://www.datacamp.com/blog/llmops-essentials-guide-to-operationalizing-large-language-models Whenwe,asusers,interactwithChatGPT,wesimplytypeapromptintothewe......
  • 【论文笔记】VCoder: Versatile Vision Encoders for Multimodal Large Language Mode
    ......
  • ECE 4122/6122 CUDA program
    ECE4122/6122Lab4:CUDA-basedJohnConway’sGameofLife(100pts)Category:CUDADue:TuesdayNovember8th,2024by11:59PMObjective:ImplementaC++CUDAprogramtoruntheGameofLife.GameDescription:TheGameofLife(anexampleofacellulara......
  • Toyota Programming Contest 2024#11(AtCoder Beginner Contest 379)题解
    总体情况A-Cyclic题意给你一个三位整数\(N\),其中每个数字都是介于\(1\)和\(9\)之间的整数。设\(a\),\(b\),\(c\)分别是\(N\)的百位、十位和个位数。打印一个按此顺序排列\(b\),\(c\),\(a\)所组成的整数,以及一个按此顺序排列\(c\),\(a\),\(b\)所组成......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest
    Preface久违地线下训练,没想到前年的比赛还有没打过的漏网之鱼这场由于一个中期题G被看出来是去年暑假前集训做过的原,导致题目难度跨度有点大最后一共出了8题,J几何的思路其实出的大差不差了,赛后改了改就过了A.ModuloRuinstheLegend首先转化下题意,令\(A=n,B=\frac{n......
  • (21-3)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):数据
    21.6 数据预处理数据预处理是训练高质量机器学习模型的关键步骤,在这一步需要检查缺失数据并进行特征工程,以将数据转换为适合模型训练的状态。本项目的数据预处理江湾城以下工作:添加技术指标:在实际交易中,需要考虑各种信息,例如历史股价、当前持仓股票、技术指标等。本文演示......
  • 【论文阅读】您的 AI 生成的代码真的安全吗?Evaluating Large Language Models on Secu
    IsYourAI-GeneratedCodeReallySafe?EvaluatingLargeLanguageModelsonSecureCodeGenerationwithCodeSecEval标题:您的AI生成的代码真的安全吗?基于CodeSecEval对LLMs代码生成的安全性进行评估摘要:*【Background】大语言模型(LLMs)在代码生成和代码修复方面取......
  • wx.navigateToMiniProgram(Object object)
    基础库1.3.0开始支持,低版本需做兼容处理。以Promise风格调用:支持需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然小程序插件:支持,需要小程序基础库版本不低于2.18.1微信Windows版:支持微信Mac版:支持功能描述打开另一个小程序参数Objectobject属性......