h********8 发帖数: 7355 | 1 C里,得自己declare 一个global mythis pointer指向global foo。
#include
int foo = 100;
int * mythis=&foo;
int bar()
{
int foo;
/* local foo = global foo, how to implemented? */
foo=*mythis;
return 0;
} |
|
|
a****l 发帖数: 8211 | 3 why do you want to give them the same name? Is it confusing? Or maybe that's
the purpose? |
|
p*********t 发帖数: 2690 | 4 Xentar当然是对的,局部变量和全局变量的区别,出了作用范围就会被释放。 |
|
b***i 发帖数: 3043 | 5 讲讲多个线程共享数据的情况吧?比如,全局变量应该共享吧。还有两个同一个类的线
程(同一个成员函数?)能否共享类的成员变量?还是这个函数是static的?
Dao |
|
r****c 发帖数: 1494 | 6 运行的好好的前提是这些行业砸了很多钱去进行测试,而且这些程序本身的功能还不算
太复杂,几十年前的学术界前沿解决方案而已。
即使如此,别的我不能说,这个丰田的源代码可是有证人看过的。100多个变量的函数
什么的也是人人皆知的,全局变量也是乱用的。我宁愿相信写compiler或者code
generator的人(matlab虽然也很烂)。
再说了,谁要你维护simulink转成的c代码了?你见过除了搞破解的人去“维护”汇编
的代码么?而且要比烂,真不见得比得过工程师了。
随着复杂度的提高(什么自动车之类的),根本不可能继续用C来写的。否则砸再多钱
也不可能穷尽所有的测试可能的。(简单的乘法原理...系统状态的可能性和状态的数
量是指数关系的) |
|
S*A 发帖数: 7142 | 7 FP 是 functional programming.
C 不是 FP。 C 的 function 可以访问全局变量,
可以有 side effect。
FP 是没有 side effect 的。这样 function 可以减少
对其他东西的依赖程度,可以进行比较深入的优化,
比较严谨。
C 的本质是使用指针的,也就是任何时候修改指针
内容都有可能改变正在访问的内存变量,这样对
优化就有很多限制。虽然后面加了 anti alias 的
规则,也不是很成功能避免这种限制。
但是话说回来, IO 这些本质就是 side effect。
FP 很多做法比较严谨, 但是编程过程非常不直观,
纯抽象思维不是大脑正常的思维方式。
要不然 Lisp 有先手,搞了那末久,后来就被 C
这种不是很严谨的语言革了命。 |
|
l*******b 发帖数: 2586 | 8 第二个没看懂呀,是说全局变量??
哦。。。是说后面那个a会导致里面那个 a变局部变量??
没明白想说什么,这例子感觉是给自己找不自在的写法呀。 |
|
z****e 发帖数: 54598 | 9 是不是一回事,currying跟immutable也不是一回事
把fp拆成个体之后,有选择性吸收,这里说的是如何用这些多线程的框架
fp都是1st class citizen,你当然不能随便改变外部变量
否则全局变量被修改,side effect大了,一堆人骂娘
private是object的概念,func private啥,local var吧 |
|
z****e 发帖数: 54598 | 10 是不是一回事,currying跟immutable也不是一回事
把fp拆成个体之后,有选择性吸收,这里说的是如何用这些多线程的框架
fp都是1st class citizen,你当然不能随便改变外部变量
否则全局变量被修改,side effect大了,一堆人骂娘
private是object的概念,func private啥,local var吧 |
|
k***g 发帖数: 166 | 11 跟全局变量没关系
int foo();
你说foo是个函数还是个int变量? |
|
d******c 发帖数: 2407 | 12 语言只是工具,选好用的,自己喜欢的就是了。
语言对人影响很大,反过来人的思维不进步的话,还是可能以旧方式用新语言
最近读 functional thinking这本书,还不错,例子举得很好。
http://nealford.com/books/functionalthinking.html
用R用久了之后有了体会,再看functional就比较清楚了。回到python就发现过于过程
化。
区别在哪里?
R的性能一般,你有动力尽量用vectorized的现成函数,而不是写loop。实际上现成函
数能解决很多问题。这就强迫你把问题分解了。
vectorized,意味着每个函数都是pipeline的一环,每个处理一遍。相比一个巨型for
loop里面多个环节在一起,可能性能上有一点点优势,就是只遍历一遍,但是太多东西
纠缠在一起。从修改,测试角度多个独立函数要容易的多。函数要独立,就需要尽量没
有副作用,没有全局变量,这样逻辑上是简单的,想起来也轻松。
OO是封装,把方法封装在自己内部,太多内部变量,这适合不同的人,不同的部门相互
合作。functional里函数是一级成员,独立存在,重用函... 阅读全帖 |
|
d*******r 发帖数: 3299 | 13 作者:Jim Liu
链接:https://www.zhihu.com/question/63726609/answer/212357616
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Redux是基于纯函数的,为了保证它的“纯度”,它的reducer函数必须是严格的 S' =
f(S) 的形态,所以,与其说Redux是“状态管理”库,不如说它是“状态转移管理”库
,因为Redux是无状态的,状态是在你的程序里的,你自己维持状态,它只是给你提供
了一个状态转移的统一方式。这使得它的整个模型看起来是非常干净。
而事实上我们在开发实际项目当中可能有小半(maybe大半)的reducer场景其实应该是
S' = await fAsync(S) 的形态,比方说,我点了一个计数器+1的按钮,在一个美丽的
DEMO里,它就+1了,但放到生产需求里,很可能是要先发起一个Ajax请求,请求OK了再
+1,甚至这时候不是+1,而是直接和服务端同步一个新的值。
但异步的reducer就破坏了它的“纯度”,因为异步是不确定的,先发不一定先至,这
会破坏reducer的“... 阅读全帖 |
|
m*****n 发帖数: 3575 | 14 我知道的circular dependency就是两个函数或者两个模块可以互相访问?
在python里这么搞是无效的
所以为了能够让母子模块之间共享变量,我都只好再开一个模块放全局变量 |
|
g***x 发帖数: 1587 | 15 简单说就是假设生物形态生成是一个自发过程,没有超越物理作用的干预,以某昆虫触
角为例,把可能的变量考虑进去,用偏微分方程描述该过程。发现结果发散,对输入和
扰动非常敏感。结论:生命发育不可能是自组织过程,生物进化也不肯能为自发过程。
结果只发表了对触角流体力学性质的观察和描述部分,证明触角对气流中信息筛选有效
率,有一次证明了进化论的伟大:)这就是生物的逻辑思维。
现在在寻找一个数学工具,它应当是质而不是量的描述,能引入全局变量,或者能把观
察者整合进去。它在特殊形式下能演化为连续变化的偏微分方程。希望懂数学的能指导
一下。 |
|
B**W 发帖数: 2273 | 16 不太明白你这程序逻辑。
过去俺们是把大数据存在文件里,读的时候用Memory File, 就是一下子把整个文件从
硬盘扔进一个内存文件,然后再读内存,速度极快,因为理论上就一次磁盘IO调用。数
据读完了再做成静态变量或者全局变量就行了。
global |
|
r*****f 发帖数: 247 | 17 ...调用程序的时候,原来的变量对你调用的程序是不存在的,除非你定义全局变量
用global a b c
这个定义要同时出现在主程序和子程序中。
如果你要保存数据,在任何地方都可以写 save targetfile a b c d |
|
T*******x 发帖数: 8565 | 18 【 以下文字转载自 Programming 讨论区 】
发信人: verdelite (石头), 信区: Programming
标 题: 我写了10页的“圣经”,先随便叫个名字“波马圣经”
发信站: BBS 未名空间站 (Mon May 29 18:02:41 2017, 美东)
波马圣经 (手稿)
基本依据(这是写给自己看的,是总纲)
人脑
动物的脑是生物长期进化的产物。它的功能建立在物质基础上。它的发生、发展,都是
因为动物生存和繁衍的需要。经过很长很长的时间,新的动物种类不断出现,同一时期
最复杂、功能最强的动物脑,比历史上更古老时期的脑具有越来越多、越来越强的能力
。由于我们主要讨论人类的命运,所以下面主要讨论对象是人脑。这些讨论的大部分,
除去主要是语言的部分,也可以适用于灵长类动物的脑。再少一点的部分也适用于哺乳
动物的脑。再少一点的也适用于鸟类的脑。更少一点的爬行动物的脑。更少一点也适用
两栖类或者更古老种类动物的脑。
人脑它拥有出一个学习机制,它可以通过学习获得许多知识和能力。学习的过程是缓慢
的。如果时间允许,通过学习来获得这些能力,比依靠天生(通过遗传)来获得这... 阅读全帖 |
|
o*o 发帖数: 4495 | 19 有熟悉IAR workbench for ARM的吗?
在IAR环境下面,有些最最基本的代码(比如赋值语句,给全局变量赋值)被IAR编译器
直接或略掉了。系统没有任何提示,只是在单步执行时或disassembly窗口中能看到有
些语句给莫名其妙地或略了。
以前都是使用其他IDE,没有过这个问题. 初次使用IAR,肯请援手。 |
|
D***I 发帖数: 1957 | 20 sb就对了,丰田垃圾的1万多个全局变量不是吹的
而且现有的所谓主动安全系统是上个世纪开发出来的,现在改吧改吧就全面标配了
根本避免不了碰撞 |
|
d********m 发帖数: 3662 | 21 你可能一开始没有构思好全局变量。但人设没有崩塌,请继续努力。 |
|
C****o 发帖数: 1549 | 22 马的要是假的就太无聊了
招女人的是生下来就招女人
假装太无聊
: 你可能一开始没有构思好全局变量。但人设没有崩塌,请继续努力。
|
|
q*c 发帖数: 9453 | 23 尼玛这3000 个联邦法官都可以给全美国判决,那美国高院不是可以给全太阳系判决了?
这么多全局变量,太乱了 |
|
|
D***n 发帖数: 6804 | 25 用了1万1千个全局变量,一个函数1300行程序只能说明一个事实:
此程序老掉牙了,从95年代中期到现在就没怎么改过。
当年的程序质量评估标准和现代的不一样。但是丰田没有任何改进。 |
|
k*********s 发帖数: 4474 | 26 绝对是软件问题。用了一万二千个全局变量,代码复杂度超过50的有137处! |
|
k*********s 发帖数: 4474 | 27 有些中国人贱到什么地步我不敢说。但美军登陆日本之后,东京那些招待美军的妓院老板
可是都拿日本护照的。
报歉,对engineering一无所知,也对日本车engineering精神了解甚少。我是个臭写程
序的,只知道一万个全局变量、100多个function代码复杂度超过50,这代码就烂得一
坨屎。您说的engineering精神,是不是不包括software engineering?
"有人成天在军版黑土共车版舔日本的,一副二鬼子样,还真就没资格骂韩国二鬼子。"
--- 这您怎么看? |
|
k*********s 发帖数: 4474 | 28 请高智商非文科生回答: Is software engineering considered as part of
engineering?
报歉,对engineering一无所知,也对日本车engineering精神了解甚少。我是个臭写程
序的,只知道一万个全局变量、100多个function代码复杂度超过50,这代码就烂得一
坨屎。您说的engineering精神,是不是不包括software engineering? |
|
d********4 发帖数: 516 | 29 自动生成的程序很多时候比100个全局变量的烂程序员写出来的好一万倍。有时候是生
与死的差别。
你在程序上找突破点那就歇了吧哪有拿弱项和人家比的。你要是非说内饰动力Yaris甩
奔驰几条街那也没人能怎么样,因为都是你个人感受阿。 |
|
l*******g 发帖数: 27064 | 30 咖喱程序员搞出来的更多是功能上烂,bug多
但还没有丰田那么烂
1,67条函数复杂度超过50,而在这67条函数中还有12条复杂度超过100,达到“非可维护
”级别,意味着一旦发现缺陷(Bug)也无法修复,因为实在太复杂,修复缺陷的过程
中会产生新的缺陷。其中最复杂的一条函数有超过1300行代码,146个可能执行路径—
—正好用于根据各传感器数值计算节气门开关角度。
2,包含了超过一万一千个全局变量
3,丰田辩称他们遵循的不是行业规范,而是丰田内部编程规范。这一规范与行业规范的
吻合程度达到50%。但是Barr认为根据他的调查,两个规范之间吻合度小于10%,甚至有
若干规范条目相互冲突。后来发现丰田的代码甚至没有遵循丰田内部规范,当然比起别
的问题这个已经无关紧要了。
4,MISRA C拥有超过100条规范,NASA的调查只使用了到其中35条进行校对,发现丰田
程序里超过7000处违规代码,Barr使用全部条目,对照结果是丰田的程序拥有超过
80000处违规代码。
5,在2008年款凯美瑞中使用了3比特长的EDAC。Barr认为是为了节省成本,否则应该使
用5比特长。
6,还有值得一提的... 阅读全帖 |
|
k*********s 发帖数: 4474 | 31 ICC派的consultant程序没写好:1万个全局变量,128个function代码复杂度超过50。 |
|
|
f****t 发帖数: 15913 | 33 泥马一万一千个全局变量,水平连三锅的ICC都不如,难道是埃塞俄比亚人写的?开丰田
车的风险也就比俄罗斯轮盘赌好点,版上码公很多,大家点评一下。
metric,
The
Barr
make |
|
d********r 发帖数: 9331 | 34 全局变量如果是必须的也没有什么问题,这一万多个怎么维护? 应该用一个
dictionary或者其他数据结构存起来。 |
|
m****u 发帖数: 3915 | 35 这报告净扯淡,瞎忽悠,代码质量差不是有bug的必要条件,就算是全是全局变量也不
代表一定有bug,就算栈用了90%也不代表就一定会溢出
最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速
看来bug具体在哪里根本没找到啊 |
|
D***n 发帖数: 6804 | 36 这倒不是,说明这些代码很古老。估计98年以前的。
老的C程序习惯用很多全局变量。 |
|
E****a 发帖数: 3088 | 37 说的是啊!
特么这么头头是道,那条程序有问题啊?你么这几年全世界的程序员恐怕都睁大了眼球
找吧?
再说了,自动加速的时候,奏不会换挡到neutral?有时间打九幺幺,木时间换档。如
果木有强制性偏见,特么不脚的发生的很蹊跷?
:这报告净扯淡,瞎忽悠,代码质量差不是有bug的必要条件,就算是全是全局变量也不
:代表一定有bug,就算栈用了90%也不代表就一定会溢出 |
|
|
f****t 发帖数: 15913 | 39 泥马一万一千个全局变量,水平连三锅的ICC都不如,难道是埃塞俄比亚人写的?开丰田
车的风险也就比俄罗斯轮盘赌好点,版上码公很多,大家点评一下。
metric,
The
Barr
make |
|
d********r 发帖数: 9331 | 40 全局变量如果是必须的也没有什么问题,这一万多个怎么维护? 应该用一个
dictionary或者其他数据结构存起来。 |
|
m****u 发帖数: 3915 | 41 这报告净扯淡,瞎忽悠,代码质量差不是有bug的必要条件,就算是全是全局变量也不
代表一定有bug,就算栈用了90%也不代表就一定会溢出
最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速
看来bug具体在哪里根本没找到啊 |
|
D***n 发帖数: 6804 | 42 这倒不是,说明这些代码很古老。估计98年以前的。
老的C程序习惯用很多全局变量。 |
|
E****a 发帖数: 3088 | 43 说的是啊!
特么这么头头是道,那条程序有问题啊?你么这几年全世界的程序员恐怕都睁大了眼球
找吧?
再说了,自动加速的时候,奏不会换挡到neutral?有时间打九幺幺,木时间换档。如
果木有强制性偏见,特么不脚的发生的很蹊跷?
:这报告净扯淡,瞎忽悠,代码质量差不是有bug的必要条件,就算是全是全局变量也不
:代表一定有bug,就算栈用了90%也不代表就一定会溢出 |
|
w******i 发帖数: 727 | 44 福特表示,该故障可能和4起事故相关,但未造成伤亡。不过美国经销商和保险机构数
据显示,这一问题有可能牵涉到超过30起车祸。
很明显,这问题还并不明确是不是真的,福特就召回了,这是负责任的态度.反观丰田,自
动加速死了多少人了,全局变量还是那么多. |
|
z*******o 发帖数: 1710 | 45 我讲个故事,有一天老板叫田托写个程序能在屏幕上画出一朵花,结果田托用了3万多
全局变量画出一坨屎,老板问你这程序本来应该画朵花怎么画出坨屎,田托厉声反问:
“你tm倒是找出来哪句话写错了啊?” |
|
i********e 发帖数: 1782 | 46 丰田固件里的一万一千个全局变量也是临时工干的。
a
engines
that
allowed |
|
i****x 发帖数: 17565 | 47 老色狼可以远程诊断任何丰田问题,让老色狼出庭作证就好了。拧毛巾丰田一个程序里
用了两万个全局变量,说不定万一也许可能造成方向盘助力失控自动转向呢。 |
|
i********e 发帖数: 1782 | 48 由一万一千个全局变量控制命运的车也敢向别人推荐,用心太歹毒了 |
|
f*********n 发帖数: 701 | 49 加速上不去,是因为当时一万一千个全局变量在投票决定是否自动加速,投票的结果少
数服从多数,结果加速上不去,你刚从鬼门关路过,幸运得很,就别抱怨了。 |
|
f****t 发帖数: 15913 | 50 多年前的严重安全问题至今没有解决,写过程序的人来看看,丰田车里的程序有一万一
千多个全局变量,令人发指,你的小命完全指望这烂程序不发疯 |
|