回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++教程 >> C/C++ 技巧 >> 宏的一个妙用
最 近 更 新
[转][C++] 巧用 mutable推荐
[C++] 巧用模板定义谓词
巧用异或交换整型变量的值
宏的一个妙用
[C/C++ 技巧] 提高程序..推荐
[C/C++ 技巧] 产生随机..
[C/C++技巧]巧用数组减..推荐
巧用移位运算避免乘法运算
无条件循环
最 新 推 荐
[转][C++] 巧用 mutable推荐
[C/C++ 技巧] 提高程序..推荐
[C/C++技巧]巧用数组减..推荐
热 门 排 行
[C/C++ 技巧] 产生随机..
[C/C++ 技巧] 提高程序..推荐
巧用移位运算避免乘法运算
[C/C++技巧]巧用数组减..推荐
宏的一个妙用
[转][C++] 巧用 mutable推荐
无条件循环
巧用异或交换整型变量的值
[C++] 巧用模板定义谓词
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

宏的一个妙用


来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:一般
发布于2006-02-02 16:20 被读1982次 【字体:

    假设我们定义了这样一个宏:

        #define my_output(name) printf(#name ": %d\n", name)

当我们调用这个宏的时候,例如:

        my_output(height);

预处理器会把这个语句扩展成

        printf("height" ": %d\n", height);

当我们要输出变量或者符号常量的值以及其相应名字的时候,这个小技巧就为我们提供了便利。我们只需要写一次那个名字,剩下的就交给预处理器来处理了。

    #name 中的 # 是字符串产生运算符string-creation operator),它把替换 name 的文本变成字符串字面量。上面的例子中,替换 name 的文本是 height。又因为仅仅由空格或者换行隔开的字符串字面量会被连接成一个字符串字面量,所以

        printf("height" ": %d\n", height);

等同于

        printf("height: %d\n", height);

下面我们来看一个例子

        #include <stdio.h>

        #define my_output(name) printf(#name ": %d\n", name)
        #define AGE  24

        int main(void)
        {
            int height = 166;

            my_output(AGE);
            my_output(height);

            return 0;
        }

输出为

        AGE: 24
        height: 166

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:暂无相关专题

上一篇:[C/C++ 技巧] 提高程序效率的方法
下一篇:巧用异或交换整型变量的值

共有评论 0 条 网友评分 0分 查看全部评论

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss