专栏首页C语言入门到精通C语言 | 每日基础(48)

C语言 | 每日基础(48)

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:怎么写一个一般用途的宏交换两个值?

阿一:对于这个问题没有什么好的答案。如果这两个值是整数, 可以使用异或的技 术, 但是这对浮点值或指针却不行, 对同一个值也无能为力。 如果希望这个宏用于任何类型 (通常的目标), 那么它不能使用临时变量, 因为不知道需要什么类型的临时变量 (即使知道也难以找出一个名字), 而且标准 C 也没有提供 typeof 操作符。最好的全面解决方案可能就是忘掉宏这回事, 除非你还准备把类型作为第三 个参数传入。

读者:书写多语句宏的最好方法是什么?

阿一:通常的目标是书写一个象包含一个单独的函数调用语句的宏。这意味着 “调 用者” 需要提供最终的分号, 而宏体则不需要。因此宏体不能为简单的括弧包围的 复合语句, 因为如果这样, 调用的时候就会发生语法错 (明显是一个单独语句, 但却 多了一个额外的分号), 就像在 if/else 语句的 if 分支中多了一个 else 分句一样。

有时候,正是那些意想不到之人,成就了无人能成之事。

——图灵

本文分享自微信公众号 - C语言入门到精通(c_printf),作者:刘一

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3.1 选择结构和if语句

    C语言入门到精通
  • 5.5 选择的嵌套和switch语句

    2、应该注意if与else的配对关系。else总是与它上面的最近的未配对的if配对。

    C语言入门到精通
  • 3.5 C++if语句

    C++的if语句是用来判定所给的条件是否满足,并根据判断的结果true或false决定执行哪一步。

    C语言入门到精通
  • Java Review (四、流程控制)

    不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构用 于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复...

    三分恶
  • c++之程序流程控制

    三目运算符:(表达式1)? (表达式2):(表达式3),说明:如果表达式1为真,则运行表达式2,否则运行表达式3.

    绝命生
  • Python流程控制语句的深入讲解

    计算机在解决问题时,分别是顺序执行所有语句、选择执行部分语句、循环执行部分语句,分别是:顺序结构、选择结构、循环结构。如下图:

    砸漏
  • 3 C语言 流程控制 循环 跳转

    前面的章节一直在介绍C语言的基本语法知识,然而仅仅依靠这些语法知识还不能编写出完整的程序。在程序中,通常需要加入业务逻辑,并对程序的流程进行控制。本章将重点讲解...

    py3study
  • day01 python基础

    py3study
  • 第二章(1.4)Python基础知识(流程控制)

    (1)for...in循环,依次把list或tuple中的每个元素迭代出来,Python提供一个Range()函数,可以生成一个整数序列。

    两只橙
  • 第二章(1.4)Python基础知识(流程控制)

    if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else

    两只橙

扫码关注云+社区

领取腾讯云代金券