使用宏时需注意!

简介: 基本格式:#define 完全代替的内容,相当于复制粘贴#include #define words "%d", n int main(){ int n = 102...

基本格式:#define <名> <值>
<名>完全代替<值>的内容,相当于复制粘贴

#include <stdio.h>
#define words "%d", n 

int main(){
    int n = 1024;
    printf(words);//相当于printf("%d", n);
    return 0;
}

当<值>内容为多行时,需在行末加 \ 用以连接下一行

#include <stdio.h>
#define words "%d", n 
#define exmple int n=9;\
               printf(words);\
               return 0;

int main(){
    exmple
    /*warning:不需要加;(在if_else语句中多余的;将导致bug)*/
}

带参数的宏,就相当于函数,但是由于它本质是复制粘贴,所以会造成编译时代码量大,但是对程序员说定义和使用宏比函数来的更简洁方便(当然因人而异)
宏在编译时编译器不会做类型检查,因此为了安全,使用带参数的宏一切都要带括号

#include <stdio.h>
#define func_1(x) (x*5)
#define func_2(x) (x)*5
#define func_3(x) ((x)*5)

int main(){
    printf("%d", func_1(2+3));
    //输出:17     相当于printf("%d", (2+3*5))
    printf("%d", 50/func_2(2+3));
    //输出:50     相当于printf("%d", 50/(2+3)*5) 
    printf("%d", func_3(2+3));
    //输出:25     相当于printf("%d", ((2*3)*5))
    return 0; 
}
目录
相关文章
|
7月前
|
存储 人工智能 Java
一文彻底搞定C语言中的二维数组
本文详细介绍了C语言中的多维数组,包括二维和三维数组的定义、初始化方式、内存布局及遍历方法。通过具体示例讲解了多种赋值技巧,并强调了数组在内存中按行存放的特点。希望这些内容能帮助你在编程路上不断成长!君志所向,一往无前!
340 1
一文彻底搞定C语言中的二维数组
|
7月前
|
人工智能 安全 Java
通义灵码 2.0 与 1.0 比较测评反馈
通义灵码 2.0 与 1.0 比较测评反馈
355 10
|
8月前
|
存储 人工智能 运维
首批!阿里云飞天企业版率先通过中国信通院一云多算能力评估
阿里云飞天企业版率先参加中国信通院组织的首批一云多算系列标准的评估,并成功通过该标准的验收测试与专家评审。
203 2
首批!阿里云飞天企业版率先通过中国信通院一云多算能力评估
|
8月前
|
人工智能 自然语言处理 算法
《DevEco CodeGenie——人工智能开发者的得力助手》
华为推出的DevEco CodeGenie为AI开发者提供了全方位的支持,涵盖智能知识问答、代码补全与生成、万能卡片生成等功能。它基于生成式搜索能力,快速解决开发难题,显著提升开发效率,缩短项目周期。尤其对新手友好,降低入门门槛,助力其快速上手鸿蒙原生应用开发。通过解放开发者于繁琐任务中,激发创新思维,专注于业务逻辑实现与技术创新,推动AI技术在鸿蒙生态中的深度融合与发展。
344 21
|
JavaScript 前端开发 PHP
12款最佳的 WordPress 语法高亮插件推荐
  语法高亮工具增强了代码的可读性,美化了代码,让程序员更容易维护。语法高亮提供各种方式由以提高可读性和文本语境,尤其是对于其中可以结束跨越多个页面的代码,以及让开发者自己的程序中查找错误。在这篇文章中,我们选择了12款最佳的 WordPress 语法高亮插件分享给大家,这将有助于你管理,美化和突出你的代码。
2693 0
|
存储 SQL 分布式计算
小迈科技 X Hologres:高可用的百亿级广告实时数仓建设
通过本文,我们将会介绍小迈科技如何通过Hologres搭建高可用的实时数仓。
小迈科技 X Hologres:高可用的百亿级广告实时数仓建设
官宣!我们和中国电信牵手了
近日,中国电信集团公司(以下简称“中国电信”)与阿里云正式签署合作协议,联合研发“天翼钉”。
1300 0
官宣!我们和中国电信牵手了
|
云安全 人工智能 架构师
阿里云认证ace的含金量高吗?阿里云认证ace的作用
阿里云认证ace证书是近几年出现的新词汇,至于阿里云认证ace证书是起到什么作用我们就不是很了解了,今天认证大使工作人员为我们介绍一下阿里云认证ace的含金量高吗?
3255 0
阿里云认证ace的含金量高吗?阿里云认证ace的作用
|
SQL 存储 分布式计算
PAI平台输出数据下载到本地的操作方法
因为DATA WORKS只有本地文件上传入口而没有下载入口,所以当遇到特别是小规模输出结果数据需要下载到本地时需要通过其他方法,PAI平台所展示的数据输出只有100条,本文提供了一种将PAI平台输出到MAXCOMPUTE 中的数据下载到本地的方法,通过DATA WORKS中的手动业务流程实现
919 0
PAI平台输出数据下载到本地的操作方法