首页 > 其他分享 >#define和#include的区别

#define和#include的区别

时间:2024-02-11 17:55:55浏览次数:28  
标签:文件 定义 区别 45 指令 include define

#define和#include都是C语言中的预处理指令,“#”表示这是一条预处理命令。

(1)、“define”为宏定义命令,“标识符”为所定义的宏名。

#define是宏定义,例如:

#define a 45

这条指令会导致程序所有单独出现的a被替换为45。

(2)、#include是文件包含指令,例如#include<stdio.h>

 这条指令会导致预处理器把#include后面跟的文件(即stdio.h)的内容替换到这条指令的位置。

如果文件名由<>括起来,表示系统自带库,将在依赖于系统的目录中寻找这个文件。

如果文件名由" "括起来,表示用户自己定义的库;系统将会首先在当前程序目录中查找对应文件,如果找不到,再到其他依赖于系统的目录中寻找。

 

转载:https://blog.csdn.net/helenchen1995/article/details/100031072

标签:文件,定义,区别,45,指令,include,define
From: https://www.cnblogs.com/YYZYCS/p/18013420

相关文章

  • #include使用引号“”和尖括号<>的区别?
    头文件被包含的方式(1)本地文件包含#include"test.h"使用双引号包含头文件,编译器首先在源文件所在目录下查找test.h文件,如果该头文件未找到,编译器就去标准路径查找头文件。如果依然找不到就提示编译错误。(2)库文件包含比如:#include<stdio.h>我们一般用尖括号包含标准库的头文......
  • vue3 let,var,const区别
    在Vue3中,let、var和const都是用于声明变量的关键字区别:   var:在JavaScript中,var是声明变量的最常用的关键字。var声明的变量的作用域是函数级的,如果在函数内部声明的变量,其作用域将限制在函数体内部。如果在函数外部声明的变量,则其作用域将是全局的。   let:let也用于声明......
  • 5分钟搞懂Ingress / IngressController / IngressClass的区别
    本文5分钟大白话说明白Ingress、IngressController、IngressClass的概念和区别,然后结合实践加深理解。先来个一句话总结:Ingress由Ingress规则、IngressController、IngressClass这3部分组成。Ingress资源只是一系列路由转发配置,必须使用IngressController才能让路由规则生效,而I......
  • 软件测试与游戏测试的区别
    功能上:功能上:软件测试只要基本上的功能不出现问题,不影响交互就没太大的问题;游戏测试则不同出现一些及其细微的功能缺陷都会导致游戏的胜负结果。性能上:性能上:软件测试讲究3-5-10的响应速度,3秒为良好优秀,5秒为一般,10秒为极差;但游戏在性能提供上讲究就会比较严格,一些细微的卡顿......
  • Java中String、StringBuffer、StringBuilder的区别以及使用场景总结
    Java中,String、StringBuffer和StringBuilder都用于处理字符串,但在功能和性能上有显著的区别。了解这些区别有助于选择最适合特定情境的类型。在选择使用String、StringBuffer或StringBuilder时,应根据字符串操作的性能需求和线程安全要求来做出决定。1、String、StringBuffer、......
  • 【c&c++】#define 宏的高级用法二
    一,宏的定义与撤销#普通宏定义#definePI3.14//编译阶段替换掉宏#defineT13+4//容易产生歧义#defineT2(3+4)//添加括号后,语义清楚floatr=1.0;floatarea=PI*r*r;inta=2*T1#宏替换后变成inta=2*3+4不符合本意inga......
  • readv、recv和recvmsg三个函数的区别
    目录概述readv示例(文件I/O)recv示例(套接字通信)recvmsg示例(套接字通信)概述readv、recv和recvmsg三个函数都是用于从文件或套接字接收数据的函数,但它们在功能和使用场景上存在一些区别。readv函数:readv函数主要用于从文件描述符读取数据到多个缓冲区中。它允许在......
  • #define定义常量和宏
    #include<stdio.h>//define定义标识符常量#defineMAX1000//define定义宏#defineADD(x,y)((x)+(y))intmain(){ intsum=ADD(2,3); printf("sum=%d\n",sum); sum=10*ADD(2,3); printf("sum=%d\n",sum); return0;}......
  • `resp.text` 和 `resp.json()` 是处理 `requests` 库返回的响应对象中的两个不同方法,
    resp.text和resp.json()是处理requests库返回的响应对象中的两个不同方法,用于获取服务器响应的内容。它们的区别在于:resp.text:resp.text返回响应的内容作为字符串。适用于任何响应内容,无论响应内容是HTML、JSON、XML还是纯文本。如果响应内容是JSON格式,可以使用resp.tex......
  • StringUtils中isNotEmpty()与isNotBlank()的区别
    首先说明Strings1="",s2=null;变量s1是非空,且长度为0(中间没有空格);变量s2是空,且s2.length()会报错,java.lang.NullPointerException。 所以:isNotEmpty(str)相等于str!=null&&str.length()>0isNotBlank(str)相当于str!=null&&str.length......