返回信息流当你纠结的时候,源码给了你哪些答案呢?
当楼主纠结是写一个Magic Number还是写一个strlen(string literal)?(如果我能很容易做好,我不奢望编译器帮我做什么)
pos = line_str.find("coding", pos);
if(pos == std::string::npos)
break;
pos += 6 /* = strlen("coding")*/;
if(line_str[pos] != ':' && line_str[pos] != '=')
continue;
do {
pos++;
} while(line_str[pos] == '\x20' || line_str[pos] == '\t');
版上的大神们,能不能也分享一些?
这是一条镜像帖。来源:北邮人论坛 / cpp / #89542同步于 2015/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[讨论]当你纠结的时候,源码给了你答案[更新]
zx723
2015/11/26镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 Vampire 的大作中提到: 】
: 才 10 个字符不到 strlen 能花多少时间啊
: 帖子标题没看懂
不考虑编译器优化的能力,就是从O(n)到O(1)的改变呀,只执行一次的话是少不了多少时间。。。
strlen("coding")
在确定情况下你可以直接写长度,但要是下个字符不是“coding”而是“sleeping”、“sihafjmkrancidjacdsanucdhaouuhjancacdsaucdoyahvcucdusaicewij熬出的撒谎vjewaoicjdsacm”,"L'sihafjmkrancidjacdsanucdhaouuhjancacdsaucdoyahvcucdusaicewij熬出的撒谎vjewaoicjdsacm'",
这时候,你该怎么办,要一个个去数吗?
更甚,不用常量而是传进某个string变量的时候,那块代码也不会因为忘记修改而出bug
当然,针对当前这个特定问题,你直接用数字没啥问题,还能促进效率咧
不是说楼主不明白这些道理
而是说,编程,养成良好的习惯也很重要
愚见
【 在 FromMars 的大作中提到: 】
: strlen("coding")
: 在确定情况下你可以直接写长度,但要是下个字符不是“coding”而是“sleeping”、“sihafjmkrancidjacdsanucdhaouuhjancacdsaucdoyahvcucdusaicewij熬出的撒谎vjewaoicjdsacm”,"L'sihafjmkrancidjacdsanucdhaouuhjancacdsaucdoyahvcucdusaicewij熬出的撒谎vjewaoicjdsacm'",
: 这时候,你该怎么办,要一个个去数吗?
: ...................
恩,谢谢指教。
当string literal太长,我不是很容易数的时候,我就不想数了。。。
当传进来是一个变量(显然不是string literal)的时候,我也不会纠结了,因为我也不知道这个string变量有多长呀。。。
菜鸟楼主就是希望学习一些好的编码习惯,才想着,看看版上的各位大神都有哪些喜欢的编码技巧。
楼主贴的代码,也不是楼主写的,而是楼主看别人的源码,觉着还不错