C++中“#”号的使用技巧
2019/7/10 23:27:45
本文主要是介绍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经常被认为好象不是语言本身的一部分。但我们在不干扰自己程序的情况下,用一用也无妨。
貌似没说清楚,举个例子:
复制代码 代码如下:
#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++中“#”号的使用技巧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-07fastcgi 是什么-icode9专业技术文章分享
- 2024-10-07fastcgi 的详细使用教程介绍-icode9专业技术文章分享
- 2024-10-07git如何更新单个文件到本地-icode9专业技术文章分享
- 2024-10-07如何使用ASM(Abstract Syntax Tree Manipulation)技术来修改第三方AAR依赖中的函数-icode9专业技术文章分享
- 2024-10-07Activity 跳转时间耗时很长怎么优化解决-icode9专业技术文章分享
- 2024-10-07Androud Toast 有哪些常用的第三方组件-icode9专业技术文章分享
- 2024-10-07在viewmodel中怎么使用 mmkv?-icode9专业技术文章分享
- 2024-10-07MMKV.defaultMMKV() 是单例模式吗?-icode9专业技术文章分享
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享