1. 运算符优先级与括号

#define Cube(a) a*a*a
  • 无法解决 Cube(1+1) ⇒ 1+1*1+1*1+1 ⇒ 4,期待的应当是 8,故将其改造为

    
    #define Cube(a) (a)*(a)*(a)
    
  • 如此,自身运算的优先级是能解决了,和其他表达式结合时便又存在先运算和后运算的算符优先级的问题,比如其前跟着一个除法运算符:

    16/Cube(2)  ⇒ 16 / 2 * 2 * 2 ⇒ 32,而不是期待的 16 / (2*2*2)
  • 故我们期待的宏定义其实应当是一个整体:

    
    #define Cube(a) ((a)*(a)*(a))
    

C 语言经典面试题 —— 宏相关推荐

  1. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

    经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...

  2. 【C语言经典面试题】这样的char * 定义怎么回事

    作者简介 *架构师李肯(全网同名)**,一个专注于嵌入式IoT领域的架构师.有着近10年的嵌入式一线开发经验,深耕IoT领域多年,熟知IoT领域的业务发展,深度掌握IoT领域的相关技术栈,包括但不限于 ...

  3. c语言专业面试,10道嵌入式C语言经典面试题

    10道嵌入式C语言经典面试题 1.分析下面的C代码,它的运行结果可能是: #include int main(void) { int i = 0; if (i = 1) printf("i ...

  4. C语言经典面试题及面试宝典

    声明:文章转自 https://blog.csdn.net/qq_26093511/article/details/78874424 1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又 ...

  5. 嵌入式C语言经典笔试题

    简答 如何判断一段程序是由 C 编译程序还是由 C++编译程序编译的? #ifdef __cplusplus cout<<"c++"; #else cout<&l ...

  6. C语言经典笔试题(一)

    1.请填写bool , float, 指针变量 与"零值"比较的if 语句. 提示:这里"零值"可以是0, 0.0 , FALSE 或者"空指针&qu ...

  7. C语言经典面试题 - 字母的大小写转化

    字母的大小写转化 题目描述 KiKi想完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母:反之则转换为大写字母. 输入描述 : 多组输入,每一行输入一个字母. 输出描述 ...

  8. linux c语言常见面试题及答案,Linux下C语言的几道经典面试题小结(分享)

    Linux下C语言的几道经典面试题小结(分享) 本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正. 1.如果在Linux下使用 ...

  9. C语言经典面试笔试题

    总结几道C语言经典面试笔试题,涉及联合体,位段,大小端等知识点,有兴趣的可以刷刷. 1.联合体大小问题 2.联合体+大小端问题 3.形参与实参关系+内存开辟问题 4.位段使用问题 5.返回栈空间地址问 ...

最新文章

  1. 1.5s~0.02s,期间我们可以做些什么?
  2. 关于Unsupported major.minor version 52.0报错问题解决方案
  3. poj 3349 雪花
  4. JBoss 系列八十五: JBoss Modules 简单介绍
  5. adb logcat 命令行用法
  6. 第一周作业--软件过程与项目管理
  7. Django框架-Form组件
  8. Linux系统编程12:进程入门之进程的优先级及PR和NI如何修改进程优先级
  9. Java 反射(Array相关)
  10. python参数传递_python参数的传递
  11. 关于Eclipse的常用快捷键
  12. win7无线网络突然不能用了(或打开无线按钮灰色)
  13. Excel在数据分析和日常工作的运用
  14. Python微信公众号后台开发教程001
  15. C# dataGridView限制某一行的单元格只输入数字的方法之一
  16. C语言实现单链表首尾相连
  17. 读《拆掉思维的墙》小记
  18. C++11 使用智能指针封装 pimpl idom
  19. 数据相关的在职研究生_南方医科大学2020年招收在职博士研究生导师名单及复试考生名单!...
  20. u盘在计算机磁盘中显示为磁盘1,U盘盘符显示却提示插入磁盘该怎么办

热门文章

  1. 关于AIR 应用程序沙箱
  2. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!
  3. 链路聚合_链路聚合实验
  4. 查询jdk支持的 tsl协议版本
  5. mapreduce阶段出现pending的原因及解决
  6. Linux内核 触摸板,Linux下关闭触摸板和触摸杆
  7. iis8 php mysql zend,强烈推荐windows 2012 iis8 fastcgi php5.2.17 zend mysql
  8. linux里面有mysql的僵尸进程_linux 如何清理僵尸进程
  9. classnotfoundexception是什么异常_大佬说“异常信息”是优秀程序员编写代码的宝贵财富,这是真的吗...
  10. ip=request.servervariables(Remote_Addr)获得ip显示::1