C++中“#”号的使用技巧

 更新时间:2013年05月21日 17:12:17   作者:  
本篇文章是对C++中“#”号的使用技巧进行了分析介绍,需要的朋友参考下
在写程序时,我们经常要输出,比如printf,cout,当你要输出表达式的值,并要在前面输出表达式的形式时,有时会有点麻烦!比如cout<<"a*b(c-d):"<<a*b(c-d)<<endl;有时像"a*b(c-d):"这样的表达式懒得写,或很多这样的表达式,写起来也浪费时间,我们可以用“#”来减少麻烦!
貌似没说清楚,举个例子:
复制代码 代码如下:

#include <iostream>
using namespace std;
#define P(EX) cout<<#EX<<":"<<EX<<endl;
int main()
{
    int a[10];
    for (int i = 0; i < 10; i++)
        a[i] = i;
    int *ip = a;
    P(*ip);           
    P(*++ip);
    P(*(ip+5));
    int *ip2 = ip + 5;
    P(*ip2);
    P(*(ip2 - 4));
    P(*--ip2);
    P(ip2-ip);         //指针相减,注意:指针之间不能相加
    return 0;
}

执行一下,看看效果,不用我们屡次写cout<<"*(ip2 - 4)"<<":"<<*(ip2 - 4)<<endl;这些字符串了。尽管Effective C++建议尽量用const和inline而不用#define,即“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。但我们在不干扰自己程序的情况下,用一用也无妨。

相关文章

  • C++ map与set封装实现过程讲解

    C++ map与set封装实现过程讲解

    set set是一种关联式容器,下面这篇文章主要给大家介绍了关于C++中map和set使用的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • C++选择文件夹代码的封装

    C++选择文件夹代码的封装

    这篇文章主要介绍了C++选择文件夹代码的封装,实例展示了将选择文件夹功能代码封装为一个类并对其进行实例化调用的过程,对于学习C++程序设计有不错的参考价值,需要的朋友可以参考下
    2014-10-10
  • C++实现获取指定代码段的cpu占用

    C++实现获取指定代码段的cpu占用

    这篇文章主要为大家详细介绍了C++实现获取指定代码段的cpu占用的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2023-12-12
  • C++与Lua协程交互的示例详解

    C++与Lua协程交互的示例详解

    Lua 语言不支持真正的多线程,即不支持共享内存的抢占式线程,在执行协程体的 Lua 脚本时,Lua 同样可以调用 C++ 的函数,本文给大家介绍了C++ 与 Lua 的协程交互,需要的朋友可以参考下
    2024-02-02
  • C++中vector的模拟实现实例详解

    C++中vector的模拟实现实例详解

    vector是表示可变大小数组的序列容器,它也采用连续存储空间来存储元素,因此可以采用下标对vector的元素进行访问,这篇文章主要给大家介绍了关于C++中vector模拟实现的相关资料,需要的朋友可以参考下
    2021-11-11
  • C++文件读和写的使用

    C++文件读和写的使用

    本文主要介绍了C++文件读和写的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 基于QT的TCP通信服务的实现

    基于QT的TCP通信服务的实现

    在项目开发过程中,很多地方都会用到TCP通信,本文主要介绍了基于QT的TCP通信服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C语言进阶数据的存储机制完整版

    C语言进阶数据的存储机制完整版

    这篇文章主要为大家完整的介绍了C语言进阶数据的存储机制,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • c++连接mysql5.6的出错问题总结

    c++连接mysql5.6的出错问题总结

    下面小编就为大家带来一篇c++连接mysql5.6的出错问题总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • c++ using定义类型别名的具体使用

    c++ using定义类型别名的具体使用

    本文主要介绍了c++ using定义类型别名的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08

最新评论