首页 > 其他分享 >宏定义中的参数需要加括号的原因

宏定义中的参数需要加括号的原因

时间:2022-11-18 11:34:37浏览次数:39  
标签:11 定义 33 括号 参数 printf 表达式

#include <stdio.h>

#define A(x, y)((x) * (y))
#define B(x, y)(x * y)

void main() {
    
    //非表达式参数
    printf("%d\n", A(11, 3));       //33    (11)*3
    printf("%d\n", B(11, 3));       //33    11*3

    //表达式参数
    printf("%d\n", A(6 + 5, 3));    //33    (6+5)*3
    printf("%d\n", B(6 + 5, 3));    //21    6+5*3

    //宏内的括号可以保证算术优先级,因为参数可能是表达式
}

 

标签:11,定义,33,括号,参数,printf,表达式
From: https://www.cnblogs.com/anzf/p/16902662.html

相关文章

  • java自定义异常
    package异常和断言;publicclass自定义异常{publicstaticvoidmain(String[]args){try{//抛出自定义异常,fd为异常信息thrownewd("fd");}//捕捉自定义异常catch(de......
  • 自定义StringByteLength
    usingHKElectric.ESafety.Utilities;usingSystem.ComponentModel.DataAnnotations;namespaceHKElectric.ESafety.WebAPI{publicclassStringByteLengthAttri......
  • 自定义django admin Action
    https://blog.csdn.net/anbuqi/article/details/100810993 自定义djangoadminAction 文章目录自定义djangoadminAction简介Adminactions简介编写Admin......
  • dp交换值域定义域
    前言最近心血来潮学了一下这个套路?感觉很高级qwq。正文我不好归纳,但他们大体都是一样的。T1[AGC033D]Complexity题意给定一个\(N\)行\(M\)列的字符矩阵。......
  • 第五十章 开发自定义标签 - 使用Rule类
    第五十章开发自定义标签-使用Rule类使用Rule类规则编译器为每个被编译的规则定义生成一个类。匹配规则时执行的正是这段代码。这意味着规则可以更强大可以直接将......
  • dpm中的参数和颗粒数据读取
    rho0表示颗粒密度。sizeDistribution中的fixedvaludedistribution的value值表示颗粒直径(可以设置不同的直径分布函数和固定值)。cloudFunction中可以设置关于cloud的不同......
  • <原文转载> 自定义博客园博客页面标签页的icon图标
    有没有发现大多数的博客园标签右上角都是一个小矿工,千篇一律没有什么特色,想不想设置一个像我一样的个性化icon图标呢?按照以下四步你也可以实现自定义标签图标。FromTo......
  • jmeter参数化----绝对路径&相对路径
    绝对路径:就是文件存在的路径线程组--->添加--->CSV数据文件设置,文件名选择文件所在绝对路径地址查看响应结果 相对路径:指数据文件(bat/txt/csv)相对于当前执行的.jmx......
  • C++ 函数之占位参数
    voidfunc(inta,int){cout<<"占位参数"<<endl;}//占位参数之默认参数voidfunc2(inta,int=10){cout<<"占位默认参数"<<endl;}intmain()......
  • 在WPF中使用Prism弹出自定义窗体样式的对话框
    摘要在Prism中弹出一个对话框,默认是一个Windows默认样式的窗口,会与自己所开发的项目完全不搭配,例如下面这样子如果为了迎合软件主体风格,可以做出类似这样效果其实原理......