免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: safedead
打印 上一主题 下一主题

[C] [C实现]条件表达式的执行顺序是固定的吗? [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
31 [报告]
发表于 2012-09-29 13:59 |显示全部楼层
回复 120# wwwsq


    华为很少社招。华为一般靠校园招聘和内推。而且对内推是很信任的,刚开始相对比较轻松。

我现在已经跟华为没关系了,所以不要说“你们”。

华为整体薪酬都挺高的,主要是因为硬件是赚市场份额的钱,而且华为舍得对优秀员工奖励。当然惩罚起来也毫不留情。

华为在开发上的流程是在国内走的比较早的,目前也是比较完善的。问题就在于比较古板,不容易适应变化,敏捷不起来。

讲逻辑绝对不能是在发布前,那样就来不及了。我的第一份工作就犯过这个错,那个月还被扣了钱。将逻辑是要在设计前就要讲清楚,然后设计,然后才是编码,然后是编写测试样例,最后才能入库,在经过人工测试以后才会发布。发布前才将逻辑,已经来不及了。

代码没看懂是没人敢去重构的。我们不赞成重构,能工作的代码,再烂,也有烂的理由。重构都是项目完成以后积攒技术积累的时候当做课题去做的。代码没看懂就去重构,可不是挨批了事,这是要处分的重要过错。当然如果要紧急重构,我们也是要上备用服务器才敢的。你们的项目难道没有热备?没有热备也敢上线?

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
32 [报告]
发表于 2012-09-29 14:00 |显示全部楼层
回复 123# wwwsq


    如果需要试而不是看文档/reference/language report才理解原理,那已经不是目的的问题,而是职业素养/职业素质的问题了。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
33 [报告]
发表于 2012-09-29 14:01 |显示全部楼层
回复 127# wwwsq


    说起比职位,我肯定比不赢你的。我现在是自由职业者,自己写东西玩儿~

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
34 [报告]
发表于 2012-09-29 14:08 |显示全部楼层
回复 137# pandaiam


    我没想着挣钱啊,只想把以前工作攒到的经验好好梳理下,前几年实在是太累了。

现在主要做开源的。就着兴趣来的,都不是什么赚钱前沿的内容,只是有一个稍微应景点儿,不过技术上很困难,我准备把现在这个搞完了再集中精力去搞的。做完了是准备MIT协议开源的。然后就准备就着这些基础创业或者找工作了吧。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
35 [报告]
发表于 2012-09-29 14:13 |显示全部楼层
本帖最后由 starwing83 于 2012-09-29 14:16 编辑

回复 140# wwwsq


    所谓公司政治,其实非常简单,就是外行领导内行还是内行领导内行。

华为有些部门,特别是移动部门,经常拿一些内行外行来管项目进度,那不是扯淡的事儿么。

如果是技术牛人,根本不会让项目窘迫到那种地步的。不,别说技术牛人,稍微规章制度正常点的公司,稍微有点技术实力的公司,都不允许UB入库的。可想而知项目已经是什么状况了。

UB和所谓的“语言特性”是完全不同的两回事。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
36 [报告]
发表于 2012-09-29 14:16 |显示全部楼层
回复 141# wwwsq


    各种吧。一个自动构建系统,一个全平台移动应用开发平台,还有一个Lua的版本发布系统。当然最后还有一直在做的类Vim的编辑器。除了跟以前工作相关的总结(移动应用引擎)以外,别的应该都不怎么赚钱,最多拿点donate吧。那个引擎我是打算做好了可以出来创业或者做技术基底的,所以写的很小心。

我不用C++,现在项目都是C+Lua做的。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
37 [报告]
发表于 2012-09-29 16:24 |显示全部楼层
本帖最后由 starwing83 于 2012-09-29 16:27 编辑

回复 216# wwwsq


    这样吧,我找段代码给你看:
  1. void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
  2.   int loop;
  3.   for (loop = 0; loop < MAXTAGLOOP; loop++) {
  4.     const TValue *tm;
  5.     if (ttistable(t)) {  /* `t' is a table? */
  6.       Table *h = hvalue(t);
  7.       TValue *oldval = cast(TValue *, luaH_get(h, key));
  8.       /* if previous value is not nil, there must be a previous entry
  9.          in the table; moreover, a metamethod has no relevance */
  10.       if (!ttisnil(oldval) ||
  11.          /* previous value is nil; must check the metamethod */
  12.          ((tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL &&
  13.          /* no metamethod; is there a previous entry in the table? */
  14.          (oldval != luaO_nilobject ||
  15.          /* no previous entry; must create one. (The next test is
  16.             always true; we only need the assignment.) */
  17.          (oldval = luaH_newkey(L, h, key), 1)))) {
  18.         /* no metamethod and (now) there is an entry with given key */
  19.         setobj2t(L, oldval, val);  /* assign new value to that entry */
  20.         invalidateTMcache(h);
  21.         luaC_barrierback(L, obj2gco(h), val);
  22.         return;
  23.       }
  24.       /* else will try the metamethod */
  25.     }
  26.     else  /* not a table; check metamethod */
  27.       if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_NEWINDEX)))
  28.         luaG_typeerror(L, t, "index");
  29.     /* there is a metamethod */
  30.     if (ttisfunction(tm)) {
  31.       callTM(L, tm, t, key, val, 0);
  32.       return;
  33.     }
  34.     t = tm;  /* else repeat with 'tm' */
  35.   }
  36.   luaG_runerror(L, "loop in settable");
  37. }
复制代码
这段代码来自著名的Lua5.2.1,Lua编程语言是游戏界公认的游戏脚本编程语言,也是目前世界上最小最快的脚本语言之一,是《魔兽世界》的官方插件编程语言。Lua的C实现也公认是十分优美的项目,被公认为“艺术性的实现”。这个函数是Lua语言中唯一的一种数据结构“表”的设置函数,可以认为是Lua的核心函数之一。请看看他在if里面用了多少赋值、短路特性吧。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
38 [报告]
发表于 2012-09-29 16:45 |显示全部楼层
本帖最后由 starwing83 于 2012-09-29 16:52 编辑

回复 228# wwwsq


    我不知道你是啥时候来论坛的,不过肯定在《解毒》之前就来了吧。《品悟C》里面我写了几个小节,其中一点就是,规则很重要,但规则的存在,就是用来违背的。千万不要把规则当做教条,而是要想明白,为什么会有这样的规则。如果你有充分的理由,规则也是可以被打破的。只要你去想了为什么要去打破它,你就有资格去打破它。知道自己在做什么,就是打破规则最重要的要求。

至于所谓编码规则,这个其实很简单:

1. 国内的所谓“中国式员工”太多了,恪守中庸之道,这和现代社会,特别是IT业讲究个人价值的观念格格不入。所以,要对这样的人,进行强有力的约束。
2. 国内很大一部分的工作是来自外包,腾讯我不知道,中兴绝对有对外的外包项目,因为不了解合作方的水平,所以只能以最严苛的方式要求,从而保证代码质量。
3. 说白了,这还是和国内缺乏高精尖人才,大量新手不入门的现状有关。可以说谭浩强是造成这种现状的一个重要的原因(但不是要原因)。
4. 主要原因是,国内的大学教育,这方面要说的太多了,我想大家都懂。说白了就是新人的素质很难过关。

以前我在公司的时候,编码规范都是我自己亲手制定的。你贴的类似的话我也写过。但我最后写过一句:“如果你知道自己在做什么,你可以打破这些规则,但是你必须在注视里写明白,并且为自己做过的事情负责”,我/们/后/来/还/用/b/l/a/m/e/找/过/肇/事/者,后来大家偶尔也这么写,但也只是在非常必要的时候才会用这样的手法了。

我的写这么多的目的是告诉你,不能没有教条,但是也不能尽信教条,千万别忘了某档的教训呀!!


我擦的非法内容!!这怎么就非法了= =

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
39 [报告]
发表于 2012-10-08 07:04 |显示全部楼层
回复 250# 塑料袋


    如果一个C程序员连&&都不知道,我第一件做的事情肯定不是把他的工作分解到不会包含&&相关的知识。所有的组长恐怕都会建议老板fire掉他。这是基本素质问题,不是分解就能解决的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP