首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你应该要知道,C/C+很容易忽略的小技巧,不知道你就废了!

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。

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 ; 进行精简处理

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190727A0MXSP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券