由买买提看人间百态

topics

全部话题 - 话题: 全局变量
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
d*******o
发帖数: 5897
1
这样子在main.c里岂不是没法用关键字extern原来的含义了
k****e
发帖数: 126
2
可以這樣
main.h:
#ifdef MAIN
#define EXTERN_W
#else
#define EXTERN_W extern
#endif
EXTERN_W int timer_tick;
main.c:
#define MAIN
#include "main.h"
a****l
发帖数: 8211
3
那为什么不是你在main.h里面就定义extern int timer_tick,然后在实际操作timer_
tick的C文件里面定义int timer_tick呢?这样做不是更简单吗?

main
l*********s
发帖数: 5409
4
because they are global variables.
d***a
发帖数: 13752
5
还有更简单的办法: main.h按常规方法定。在main.c里,
#define extern
#include "main.h"
#undef extern
这样main.c的其它地方还可以正常地用extern。
但是,我个人不赞同用这样非常规的方法。

main
a****l
发帖数: 8211
6
很简单很粗暴.
n***e
发帖数: 723
7
其实我没搞明白,我觉得在main里面要是不写那个extern不是更省更直观。。。
b***i
发帖数: 3043
8
不是每个文件100个啊,是整个项目全部放到一个文件里面去而已
n***e
发帖数: 723
9
这样做会有global coupling的问题。你可能修改程序的某些模块的时候牵扯到很多别
的模块。。。
k**s
发帖数: 53
10
这个真的不是个好的程序风格:人为的增加了程序阅读的复杂性。如果有code review
的话,过不了。老老实实的在main.c里声明int timer_tick;然后在main.h里声明
extern int timer_tick; 一目了然的事情。

main
j********x
发帖数: 2330
11
这好比在一条错误的道路上找到一条稍微不那么错误的道路。。。
j********x
发帖数: 2330
12
奇巧淫技。。。

main
z****e
发帖数: 54598
13
说绝对强于oo的话
来,我们做一个code challenge
我做一个游戏场景,里面大量使用到了局部的全局变量
以及对于各个角色的封装
这个用fp怎么搞?

rest
db
l*********s
发帖数: 5409
14
what is 局部的全局变量?
z****e
发帖数: 54598
15
说绝对强于oo的话
来,我们做一个code challenge
我做一个游戏场景,里面大量使用到了局部的全局变量
以及对于各个角色的封装
这个用fp怎么搞?

rest
db
l*********s
发帖数: 5409
16
what is 局部的全局变量?
x****u
发帖数: 44466
17
来自主题: Programming版 - 多线程程序有什么好的调式方法?
让人人都碰线程同步,比人人写全局变量还麻烦。
h******k
发帖数: 388
18
来自主题: Programming版 - 多线程程序有什么好的调式方法?
丰田应该改用Java。彻底解决全局变量问题:~)
c*******9
发帖数: 9032
19
对没有相关数学基础的人来说monad确实抽象了些。不过不认同王垠对monad的批判,照
他的说法,什么语音都不用封装,直接全局变量岂不是更方便。
r****y
发帖数: 26819
20
来自主题: Programming版 - 关于闭包,我发明了一个绝妙陷阱
除了第一部分,后面那部分没有什么陷阱啊。完全是用字符串创建一个Function objec
t的用法。关键是调用这些创建的Function object时,i是个全局变量,简直都想不出
还能有什么其它可能性。所以太简单了。完全等于这样:
f = new Function("console.log(i)");
i = 5;
f();
f = new Function("console.log(i)");
i = 6;
f();
...
就这个,版上多少人会写不出答案来?
f*******5
发帖数: 10321
21
来自主题: Programming版 - C++确实不适合做大项目
有的crypto实现要用了全局变量,多线程时就不能直接使
d****i
发帖数: 4809
22
丰田那个例子显然是写代码的人违反了最基本的写嵌入式C代码的规则,全局变量没什
么,有很多时候就是要这样用。但是用递归显然是违反了规则一:递归绝对不能在嵌入
式里面用。simulink的自动生成后当然要人去维护,要不怎么upgrade? 所以自动生成
的代码是无法被人所读懂的,而且效率也差。
z********0
发帖数: 9013
23
来自主题: Programming版 - 随手写的C程序,请指教
直接说你想干嘛把?别总想把Compiler骗过去,这年头不容易骗了
C语言,全局变量总会在内存里的,用到的时候会Load到寄存器,但早晚总会写回去的
,当然了,多线程下是不安全的。
M***0
发帖数: 1180
24
来自主题: Programming版 - 菜鸟问个node.js问题
假如我有一个service method要更新user info,但必须先查询该user是否active,代码
是不是像这样?
定义一个全局变量:
var eventEmitter = new events.EventEmitter();
DAO layer:
var isUserStatusActive = function isUserStatusActive(userId)
{
...
return true/false;
}
var updateUser = function updateUser(user)
{
...
}
eventEmitter.on("com.myapp.dao.userDao.isUserStatusActive",
isUserStatusActive);
eventEmitter.on("com.myapp.dao.userDao.updateUser", updateUser);
Service layer:
var validateAndUpdateUser = function validateAndUpdateUse... 阅读全帖
N******K
发帖数: 10202
25
来自主题: Programming版 - C++ 两个project enum value名冲突
我现在都用 enum struct
裸体enum跟全局变量没啥区别
w********r
发帖数: 1971
26
来自主题: Programming版 - wpf c#如何定义个常变量?
这种全局的最好存在xml,设计一个静态类读入。这是基本设计的东西跟wpf没关系
wpf都是泪,做了几年。 微软抛弃了不说,bug 也不修复。很牛叉的mvvm架构。可惜了
g****t
发帖数: 31659
27
这个swift除了降低门槛之外。还有很多很牛x的非常新的特点。
generic programming, functional programming等等。
还有一些特点看上去照样可以让全局变量满天飞。
再加上llvm实际上是把swift翻译成object c。
我真不知道说什么好了。我感觉新特性有点过于多了。
f******x
发帖数: 98
28
局限在常识里,就没办法进步了。当年禁止goto不也有大批程序员反对?goto不也符合
你所谓的常识?中学物理的常识里,物体难道不是可以移动(goto)的?硬件上也很直
观,不就是直接设置PC吗?goto的效率也高,比call函数快吧。现在怎样了?
还有,当年的Cobol,不也是想设计成一种接近English和普通人思路的语言吗?结果呢?
这样的例子还有很多,全局变量不也很直观,很符合中学物理和普通人的理解吧?
所以你所谓的常识靠不住,只靠普通人的常识设计计算语言是disaster,
c******e
发帖数: 545
29
来自主题: Programming版 - C 语言,初学者问题(3)
单片机如无特别必要就别用啥malloc/free了,都开全局变量就行了。
r*****8
发帖数: 2560
30
来自主题: Programming版 - C 语言,初学者问题(3)
程序结束以后,全局变量所占的内存都会被收回是吗?
z****e
发帖数: 54598
31
来自主题: Programming版 - 各个语言在paradigms上的对比
这都是features
整个paradigm的修改是对你思想上作修改
你要有fp的思想,而不是着眼于这些feature
不过从这方面上说,fp显得很八股
为什么我一定需要用这种思想去写程序捏?
fp并没有带来足够的benefits让你去接受这个思想
不像oop对于procedural的提升一样明显
当年procedural最大的问题是容易导致混乱
经常性全局变量和函数,导致系统一旦作大,分工就不明确
各种乱,项目会挂
所以强制要求包装,目的是不给其他人添麻烦
其实封装才是oo最大的遗产,这个跟modular paradigm本质上是一样的
n**********2
发帖数: 648
32
【 以下文字转载自 Automobile 讨论区 】
发信人: chauncey (ag), 信区: Automobile
标 题: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 11:27:39 2015, 美东)
http://www.edn.com/design/automotive/4423428/Toyota-s-killer-fi
https://news.ycombinator.com/item?id=9440094
>> The Camry ETCS code was found to have 11,000 global variables. Barr
described the code as “spaghetti.” Using the Cyclomatic Complexity metric,
67 functions were rated untestable (meaning they scored more than 50). The
throttle angle function scored more... 阅读全帖
s******u
发帖数: 501
33
来自主题: Programming版 - 关于在c++ member function里用signal( )
hmm,没错,signal handler只能是函数指针,没法用bind
另外也可以用class static member function,这样不需要另外定义全局变量和free
function,当然这个handler相应的也不知道class的状态了
w***g
发帖数: 5958
34
我弄错了。查了下,webpy为每一个request instantiate一个object。
放到class里有点杀鸡用牛刀。最方便的办法是在定义class之前读入数据,
存到全局变量里。

啥。
p******1
发帖数: 79
35
http://stackoverflow.com/questions/16510254/public-variables-in
这篇文章的意思是说 python 没有全局变量。不过你的意思我懂了。
我有一个问题,既然是每一个request instantiate一个object,那么是不是我先要run
一个单独的程序,读入数据,存到class 里之类的, 再run web service ,是这样吗
? 多谢.
H**********2
发帖数: 107
36
来自主题: Programming版 - 请教express create session的问题
不是login的时候才开始session。页面一加载,server看不到client来的cookie里面有
session id就新开一个session。
另外这个sess很有问题。像是全局变量,最好移到function里面。
e*******s
发帖数: 1979
37
来自主题: Programming版 - 一个C++ 的问题
嗯 那为什么要优先解释为函数呢.
可能因为函数声明和全局变量没有办法区分开?
c*******v
发帖数: 2599
38
来自主题: Programming版 - python 3 cookbook 作者的一篇蠢文
http://www.dabeaz.com/coroutines/Coroutines.pdf
状态机不用GOTO/Label, 或者全局变量,用语法糖。
写书的就是这么糊弄事的。
过几天python generator什么的语法糖语法改改,这哥们能再写本书。
这种书就是谁学谁倒霉。
今天学这个明天学那个。
不如早点加入星宿派。
m******r
发帖数: 1033
39
来自主题: Programming版 - [bssd]goto的现实根据
怎么方便怎么来,
怎么舒服怎么来。
人生一世草生一秋,成天为这种事纠结,想起来就是噩梦。
以前那个咖喱老是挑事儿,这个啦,那个啦。我就说我这么写自有我的道理,和别人无
关,我就想练习一下go to 语句和全局变量, 怎么了?
当然你要是找不到下家,就忍了吧。 人生几十年,闻闻咖喱味儿也就过去了
g****t
发帖数: 31659
40
来自主题: Programming版 - [bssd]goto的现实根据
半导体我目测这几年老中很强大。主要是客户很多都是国内公司。
客户让谁死谁就要死。
看哪个老印不爽,安排老印去国内出几次差就行了。
国内人民种族歧视本身就很厉害,加上听不懂印度英语...


: 怎么方便怎么来,

: 怎么舒服怎么来。

: 人生一世草生一秋,成天为这种事纠结,想起来就是噩梦。

: 以前那个咖喱老是挑事儿,这个啦,那个啦。我就说我这么写自有我的道
理,和
别人无

: 关,我就想练习一下go to 语句和全局变量, 怎么了?

: 当然你要是找不到下家,就忍了吧。 人生几十年,闻闻咖喱味儿也就过
去了

w********m
发帖数: 1137
41
global variable应该更慢吧
g****t
发帖数: 31659
42
You are right and I just verified by using a single function.
The theory is:
Local namespace is checked first. Then global and then
system build in namespace.
Thanks !
w********m
发帖数: 1137
43
个人感觉,function上面加一层class,对python还是很有必要的。
g****t
发帖数: 31659
44
Get thing done就可以吧。


: 个人感觉,function上面加一层class,对python还是很有必要的。

L***s
发帖数: 1148
45
LEGB scoping rule
具体实践上,可以在 local 再引用一次 global
比如标准库里的小顶堆实现里的几句:
https://hg.python.org/cpython/file/2.7/Lib/heapq.py#l215
_heappushpop = heappushpop
for elem in it:
_heappushpop(result, elem)
这里 heappushpop 是另外一个函数,在 global scope
如果直接放 for 循环里,每次都得先 lookup local scope,
再查 enclosed 和 global scope,就慢了。
所以在 local scope 里用 _heappushpop 来引用 global scope 的对象
for elem in it:
heappushpop(result, elem)
g****t
发帖数: 31659
46
杩欎釜鍔炴硶涓嶉敊馃憤
璋㈣阿鎸囩偣
銆鍦Leiss(寰曞徃) 鐨勫ぇ浣滀腑鎻愬埌: 銆br />

: LEGB scoping rule

: 鍏蜂綋瀹炶返涓婏紝鍙互鍦local 鍐嶅紩鐢ㄤ竴娆global

: 姣斿鏍囧噯搴撻噷鐨勫皬椤跺爢瀹炵幇閲岀殑鍑犲彞锛br />

: https://hg.
python.org/cpython/file/2.7/Lib/heapq.py#l215

: _heappushpop = heappushpop

: for elem in it:

: _heappushpop(result, elem)

: 杩欓噷 heappushpop 鏄彟澶栦竴涓嚱鏁帮紝鍦global scope

: 濡傛灉鐩存帴鏀for 寰幆閲岋紝姣忔閮藉緱鍏lookup local scope锛br />

: 鍐嶆煡 enclosed 鍜global scope锛屽氨鎱簡銆br />

v*******e
发帖数: 11604
47
波马圣经 (手稿)
基本依据(这是写给自己看的,是总纲)
人脑
动物的脑是生物长期进化的产物。它的功能建立在物质基础上。它的发生、发展,都是
因为动物生存和繁衍的需要。经过很长很长的时间,新的动物种类不断出现,同一时期
最复杂、功能最强的动物脑,比历史上更古老时期的脑具有越来越多、越来越强的能力
。由于我们主要讨论人类的命运,所以下面主要讨论对象是人脑。这些讨论的大部分,
除去主要是语言的部分,也可以适用于灵长类动物的脑。再少一点的部分也适用于哺乳
动物的脑。再少一点的也适用于鸟类的脑。更少一点的爬行动物的脑。更少一点也适用
两栖类或者更古老种类动物的脑。
人脑它拥有出一个学习机制,它可以通过学习获得许多知识和能力。学习的过程是缓慢
的。如果时间允许,通过学习来获得这些能力,比依靠天生(通过遗传)来获得这些能
力要更容易。基本上可以说,能够通过学习来获得、并且可以忍受学习的缓慢性的能力
,都会通过学习获得,而不会天生(通过遗传)获得。这个学习机制的正常工作依赖于
外界输入。
上述学习机制赋予人脑学习功能。我们所关心的、关系到智能的,人脑的学习功能主要
有下列。1。对事物进行抽象、分类,... 阅读全帖
m*********t
发帖数: 858
48
来自主题: Programming版 - JavaScript 比python优雅很多
javascript ugly 的地方很多。一堆prototype到处乱写。一个回调套一个回调。全局
变量window
d******c
发帖数: 2407
49
<- 是一个函数,在data[,coln] <- 0 里实际调用的是另一个matrix为此定义的函数,
而不是常规<-
<<-只替代常规<-
解决办法很多,先用<-,然后data <<- data,或者不用全局变量而是在函数外面覆盖
你的值
凡是这种局部修改,实际上copy已经发生了,<<-就算能用,也没有减少copy 的次数,
所以copy也没有性能损失。
R现在好像没宣传是大数据利器,主要是包多,用起来简单而已。python吹的比较多。
对R语法的抱怨不稀奇,历史悠久了。
L****8
发帖数: 3938
50
来自主题: Programming版 - python的scope机制 非常垃圾
def f():
x=y
return x
#end
y=20;
f()
这样 y居然可以当做全局变量传到函数f()里面
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)