首页 > 其他分享 >#define定义常量和宏

#define定义常量和宏

时间:2024-12-07 20:30:02浏览次数:9  
标签:SQUARE 定义 举个 栗子 define 常量

一、定义常量

简单常量定义
可以用#define在代码最上面来定义一个常量。
举个栗子:#define PI 3.14159。这里PI是一个常量,在下面你每次输入PI时,它就会自动换为3.14159。
表达式常量定义
也可以定义包含表达式的常量。
举个栗子:#define MAX (100+50)。这样,当代码中出现MAX时,就会被替换成(100+50)进行计算。
注意:对于较为复杂的表达式,最好用括号括起来,以确保运算顺序符合预期。

二、定义宏

无参数宏
类似于定义常量,但可以进行更复杂的文本替换。
举个栗子:#define PR-HELLOW printf (“Hellow!\n”)
酱紫的话下面再次提到PR-HELLOW时,就会直接替换为[printf(“Hello!\n”)]
有参数宏
可以通过定义带参数的宏来模拟函数的功能。
举个栗子:#define SQUARE(x)((x)(x))。
当代码中出现SQUARE(5)时,就会直接替换为5的平方。
注意:但是使用带参数的宏时要小心,因为宏只是简单的文本替换,可能会导致一些意想不到的错误。比如 SQUARE(a + b) 会被替换成 ((a + b)
(a + b)) ,这和函数调用 square(a + b) (假设存在这个函数)的行为可能不完全相同,特别是在涉及到运算符优先级等情况时。

标签:SQUARE,定义,举个,栗子,define,常量
From: https://blog.csdn.net/Anciente/article/details/144300841

相关文章

  • 主函数中要求输入一个一元二次方程的三个系数,调用函数判断该方程是否有实数解,如果有实
    #include<iostream>#include<cmath>//用于计算平方根//判断一元二次方程是否有实数解的函数boolhasRealSolutions(floata,floatb,floatc){floatdiscriminant=b*b-4*a*c;returndiscriminant>=0;}//求一元二次方程的解的函数voids......
  • CSDN自定义皮肤-酷炫博客名称+默认显示详细资料+头像旋转+流光效果+半透明
    CSDN自定义皮肤-酷炫博客名称+默认显示详细资料+头像旋转+流光效果+半透明效果预览前言头像旋转博客名称流光效果Banner文字+流光效果Toolbar流光效果模块半透明默认显示详细资料隐藏查看详细资料按钮完整自定义模块代码(持续更新)效果预览效果预览:https://microi.blo......
  • 抽象代数-08-环的定义和基本性质
    环定义设\(R\)是一个非空集合,在R上定义两种代数运算“+”和“·”,分别被称为加法和乘法,如果下列条件被满足:(1)\((R,+)\)是一个交换群(2)\(R\)关于乘法“·”,满足结合律,即\(\foralla,b,c\inR\),有\[(a·b)·c=a·(b·c)\](3)乘法对加法的分配率成立,即对任意a,b,c∈R,有:\[a......
  • 产品经理提需求我不慌了,Doris自定义函数三剑客一把梭!
    产品经理提需求我不慌了,Doris自定义函数三剑客一把梭!打开数据分析的无限可能Doris自定义函数三剑客性能优化与最佳实践数据工程师小K盯着屏幕发愁。一个看似简单的数据分析需求,却因为复杂的业务规则让他焦头烂额。“标准SQL函数写不出来,难道要改需求?”就在这时,他......
  • FastAPI 响应模型指南:从 JSON 数据定义到动态管理的实践
    FastAPI响应模型指南:从JSON数据定义到动态管理的实践本篇文章详细介绍了如何在FastAPI中使用响应模型,包括在路径操作函数中声明response_model、处理请求与响应数据不同时的场景,以及通过参数如response_model_exclude_unset来优化响应数据。文中还探讨了如何使用r......
  • [oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
    [词根溯源]locals_现在都定义了哪些变量_地址_pdb_调试中观察变量回忆上次内容上次我们了解了变量赋值连等赋值解包赋值 所有对象变量variable模块module函数function类class都有自己所属的类型也都在内存中引用唯一位置......
  • 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?
    在前端开发中,如果遇到未定义的变量,JavaScript会抛出ReferenceError异常。程序在遇到这个异常后,默认情况下会停止在当前代码块的执行,并且不会继续往下执行。更具体地说:未声明变量的引用:如果你尝试使用一个从未使用var、let或const声明过的变量,JavaScript引擎会抛出Re......
  • 一文了解MySQL写缓冲Change Buffer(定义 作用 执行过程 触发时机 业务场景)
    MySQL的数据存储包含内存与磁盘两个部分,内存缓冲区bufferpool以页为单位,缓存最热的数据页datapage与索引页indexpage,InnoDB以变种LRU算法管理缓冲池,并且解决了预读失效和缓冲池污染的问题。对于读请求,缓冲池可以减少磁盘IO,提升性能,那么写请求呢?思考2个场景:场景1:假设要......
  • 完成的定义DoD与验收标准AC的区别
    【作者按】本文是“Scrum框架下如何保证质量”的续篇,原文写于疫情期间2020年2月19日,是我2015年初成为CST后承担Scrum教学任务后的第一篇文章,当时请教过吕毅老师有无Scrum与质量关系论述的文章。原创文章发表后有不少反响。随后,我胆子越来越大,利用疫情期间的空闲时间,写了好多文章,后......
  • 自定义公共实体类
    公共实体基类///<summary>///实体基类///</summary>publicclassBaseEntity<TKey>:IEntity<TKey>,ICreatedAudit,IUpdatedAudit,IDeletedAudit{///<summary>///主键///</summary>publicvirtualTKeyId{ge......