c++头文件有哪些_你应该要知道,C/C++很容易忽略的小技巧,不知道你就废了

9eff187e8c3b5e24d6713e791bf629c5.png

1、用if(!strcmp(s1, s2)) 比较两个字符串等值,是否是个好风格?

这并不是个很好的风格, 虽然这是个流行的习惯用法。如果两个字符串相等

这个测试返回为真, 但! (“非”) 的使用, 容易引起误会, 以为测试不等值情况

另一个选择是用一个宏

#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)

2、为什么有的人用if (0 == x) 而不是if (x == 0)?

这是用来防护一个通常错误的小技巧

if (x = 0

如果你养成了把常量放在== 前面的习惯, 当你意外的把代码写成了

if (0 = x

那编译器就会报怨。明显的, 一些人会觉得记住反换测试比记住输入双= 号容易。当然这个技巧只对和常量比较的情况有用。

3、*p++ 自增p 还是p 所指向的变量?

后缀++ 和-- 操作符本质上比前缀一目操作的优先级高,即++与p结合优先级高于*与p的结合优先级, 因此*p++ 和*(p++) 等价, 它自增p 并返回p 自增之前所指向的值(也即先去内容,然后指针p才自加)。要自增p 指向的值, 使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p。

53d9c8e3122dfd9cbcbd88cf54fd86f8.png

C++小技巧:

一 多文件编译时的头文件重复问题:

此时最好的解决方法就是使用条件包含,利用

ifndef-define-include-endif 的结构进行定义

#ifndef _HFILE

#define _HFILE

#include <.....>

....

#include <......>

***Some Essential Defination***

#endif

二 关于命名空间的使

定义命名空间:

namespace space {

Datas ;

Statements ;

}

使用命名空间中的内容:

name::function , name::data ;

当命名空间的嵌套过于繁杂时可以使用

namespace MEF = myth::elements::fire ; 进行精简处理

在实际的编程中可以使用每个主要的类使用一个命名空间,这样在编程时使得每个函数与数据的所属十分清晰。

那么,你还知道有哪些小技巧呢?可以在下方评论出来哦!

另外如果你想成为一名优秀的、高薪的程序员,那就千万不要错过学c/c++,关于C/C++编程学习,可以关注+私信笔者【C/C++编程】,要是你对C语言、C++或者是算法方面有兴趣的话,不管你是大牛还是小白,大家都一起成长进步。

922beb980430e4e085d2b4e656665f49.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值