p*****2 发帖数: 21240 | 1
你说的很对。全局变量比单点更灵活,因此有了全局变量不但解决了单点问题,还可以
同一个类型有几个全局实例,因此应用更广泛。根据孤独霸的说法,Spring里的
Singleton已经进化到了全局变量了。 |
|
s*******2 发帖数: 499 | 2 谢谢指点。我不明白的地方是在第一个例子里,在macro里面又定义了a,
我想a就有一个全局宏变量和一个局部宏变量。按照第二个例子,
%%put a is &a; 输出的应该是全局变量的值。可是答案却不是这样。
请问第一个例子和第二个例子有什么不同?好像都是有一个全局宏变量和一个局部宏变
量。 |
|
O******i 发帖数: 269 | 3 你这个数组是函数外定义的全局变量?量还是函数里定义的局部变量?或者是静态变量?
MAXPATHLEN多大?如果比较小,应该是没有问题的。
你可以改为动态分配,看看这个bug还有没有
如果是局部变量,改为全局变量或者静态变量,看看结果如何 |
|
K******C 发帖数: 230 | 4 我的
code 基本上是用frotran 77 和mpi library 写的.以前用GNU 的编译的,一直没有什
么问题:
mpif77 -r8 -o code.f
现在我把code 移到了blue gene上,用了xl fortran编译,就出现在问题了
mpixlf77 -O2 -qrealsize=8 code.f
我在code里面用了common block 定义全局变量
有一个全局变量不应该在 运行过程中变化的,后来我把这个变量 在所有的subroutine
里面print out。发现每当call 某个 subroutine以后,这个值就变化了,奇怪的是在
这个subroutine 里面 ,我没有定义这个变量所在的common block. 而且这个值从以来
的的‘4‘,一下变成了 ’2XXXX‘ ,而且每次call这个subroutine 就继续变大。
我估计是不在编译的时候设定环境变量有问题,但不知道怎么改。 不是高手有什么好
主意?
BTW:我的code 里面还定义了 double presicion的变量 |
|
D***n 发帖数: 6804 | 5 很老的程序,90年代以前的,全局变量用的很多。原因是以前软件规模小,全局变量省
掉很多参数传递,很方便。
但是丰田显然没有做相应的改进,现在的程序有multi-threading等“现代”内容。用
全局变量的结果很容易出现race condition。
给我的感觉就是丰田软件测试手段比较落后。 |
|
f****t 发帖数: 15913 | 6
十多年前是一万一千个全局变量,十多年后还是一万一千个全局变量,可靠性提高了吗?
连个carplay都不敢集成,因为一集成就变成一万三千个全局变量,你有胆买,丰田还
没有胆卖哪。 |
|
l*********a 发帖数: 445 | 7 1. 谢谢!
2. 您的意思是,如果p2是全局变量,就不能获取 _arr[1] 的引用对吗???
3. 如果 _arr 也是全局变量,这样p2(全局变量)是否可以获取_arr[1]的引用呢? |
|
g****t 发帖数: 31659 | 8 goto,全局变量,确实不好。
但是现在计算机行业利润大。什么人都出来弄个解决方案,各种语法糖
实在让人受不了。
再说全局变量这种东西。数据库对程序来说难道不是全局变量吗。。。
现在需要尾递归优化什么乱七八糟语法糖的地方,我有时候直接写个文本文件记录下这
个函数
被调用了几次。我看这样最安全。python更新到ver 100,我的程序还是可以跑的。
参考文献:
[1]
lambda,the ultimate GOTO
https://dspace.mit.edu/bitstream/handle/1721.1/5753/AIM-443.pdf?sequence=2
[2]
我看了一下午,clojure,java,python的核心人物或者作者的态度和处理方法都不一
样。
绑定在一个方案上,被洗脑的风险很大啊。反正用的也不多,需要时我还是goto或者
老老实实写下来调用的次数算了。 |
|
m*****n 发帖数: 3575 | 9 一个简单问题——把矩阵某一列刷成零
--------------------------------------
#先做个矩阵
A = matrix(1:10, ncol=2)
#现在将它的第二列刷成零
A[,2]=0
#检查一下
A
#还原
A = matrix(1:10, ncol=2)
======================================
我想把这种功能固化进一个函数里,从广义上说是对数据的一部分进行修改
--------------------------------------
zero_col <- function(data, coln){data[,coln]=0; return(data)}
#应用此函数
zero_col(A,2)
#再检查A是否被修改了
A
======================================
这样会出来两个结果,改的只是函数里面的data,而不是全局变量A
那全局变量如何改?有个"<<-"是改全局变量的
--------------------------------------
zero_col ... 阅读全帖 |
|
d******c 发帖数: 2407 | 10 FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不一定要用FP语
言实现,而是那几个FP编程原则。
每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变量和side
effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显
一段程序是否引用了全局变量,一眼看过去并不明显
是否有side effect,也不明显
于是你只能自己记住,或者写在comments里。
全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住
人的注意力只能同时考虑几件事,这样思考起来太累,过段时间以后重新捡起来很困难
,别人读也很困难。
这是程序水平的提高,当然对程序员要求高。
还有强调强类型的,那是公司老板知道招的都是一大堆新手弱人容易出错,所以有越多
检查越多约束越好,减少愚蠢错误。 |
|
S**I 发帖数: 15689 | 11 ☆─────────────────────────────────────☆
honeydream (pretty) 于 (Fri May 6 00:30:21 2011, 美东) 提到:
下面这个程序为啥会segmentation fault呢?
int main(void)
{
char *p1, *p2;
*p1 = 'a';
*p2 = 'b';
printf("%c %c\n", *p1, *p2);
return 0;
}
如果我不用指针,把p1,p2的星号都去掉,就可以输出正确结果。
☆─────────────────────────────────────☆
chenpp (chenpp) 于 (Fri May 6 00:31:43 2011, 美东) 提到:
p1和p2浮空,指向未定义的地址空间。
对未定义的地址空间进行读写操作会导致未定义的行为,包括段错。
☆─────────────────────────────────────☆
mercuriusl (Mercurius) 于 (Fri May 6 ... 阅读全帖 |
|
X****r 发帖数: 3557 | 12 block 没有scope,只有global和function scope。所有全局变量和全局函数名在一个
global scope里,该scope处于scope chain的尾端。每开始定义一个函数就会把一个
scope放到scope chain顶端,该scope包含这个函数的所有参数,函数里所有用var定义
的变量,以及函数里定义的内部函数名。当函数定义结束时这个scope就会被取走。
with关键字也会把指定的表达式的值作为一个scope暂时加到scope chain顶端。引用一
个变量时解释器会沿当前scope chain从顶端开始搜索直到找到一个scope包含这个变量。 |
|
l**********9 发帖数: 148 | 13 其实这个问题是这样的,如果没有%one()这个语句,也就是说这个macro的代码没有被
执行,那么里面定义的变量就是local的,只能被这个macro内部的代码调用,但是加上
了%one()这个语句,代码被执行了,那么此时symput所初始化的变量就变成了全局的..
所以两种说法都有道理,在这道题里面应该是全局变量...不过如果代码没有执行的话
sas会给变量分配内存空间么?不太清楚..谁能告诉我sas底层用什么写的... |
|
t****a 发帖数: 1212 | 14 很有趣的问题。稍微搜索尝试了一下
assign这个函数用来动态生成变量,pos用于指名这个变量应该生成在哪一个
environment中,参见as.environment。默认值-1表示生成在当前函数里(局部变量)
。取值1表示生成全局变量。
比如:
x=function() {assign('b',1,pos=-1); print(b)}; x() # 在x函数中动态生成局部变
量b,函数退出则b消失
x=function() {assign('b',1,pos=1); print(b)}; x() # 在x函数中动态生成全局变
量b,函数退出b仍然存在 |
|
D***n 发帖数: 6804 | 15 不知道别的部份,不过仅仅就1万个全局变量不能说明任何问题。很多老程序一个函数
就几千行,里面的变量和全局变量没任何区别。
这样的程序其实源代码结构越接近编译后的结果越好,特别是做到硬件里面进行实际调
试的时候。 |
|
D***n 发帖数: 6804 | 16 不知道别的部份,不过仅仅就1万个全局变量不能说明任何问题。很多老程序一个函数
就几千行,里面的变量和全局变量没任何区别。
这样的程序其实源代码结构越接近编译后的结果越好,特别是做到硬件里面进行实际调
试的时候。 |
|
j*********6 发帖数: 407 | 17 当成全局变量放在函数外面? private final Map memorized = new HashMap
, V>()?
还是当做函数的变量传进去,然后随着递归调用一直传下去? 比如题目的 signature是
public Type solution(T t){
Map memorized = new HashMap();
return solution1(t, memorized);
}
private Type solution1(T t, Map memorized){
}
或者有什么更好的办法? 总觉得当成全局变量比较难看 有点像 "academic code",
但是放在参数中传下去会不会影响performance? 或者其他问题?
先谢过给位大牛~ |
|
x****u 发帖数: 81 | 18 大家好,最近忙于找工作,听人介绍发现了这个版面,看了各位大大的帖子受益匪浅,
于是也来分享下自己电面的题目。几次电面发挥得很不理想,我自己总结了一些教训,
也希望大家指点迷津,给我点建议,先行谢过!
// 题目
1. Yahoo
Given a integer array, how to find the median?
Running median. Numbers keep coming in one after another, how to get the
median?
2. Google
(1)
struct A {struct A *b;}
struct A * d = 0;
void S(struct *f) {f->b = d; d=f;}
What is function S doing? Can you name this function?
What if we need S to work with any type of pointer?
Does your solution work in multi-threaded programs? Why? How... 阅读全帖 |
|
y**i 发帖数: 1112 | 19 这个递归就可解吧,bottom-up,求所有子树的最长路径,用一个全局变量或者类变量
什么的记录最长路径长度。如果有子树根节点和当前节点值差1,就返回子树最长路径
加1(有多个就返回最长那个,如果连续递增和连续递减都要考虑,还要返回递增属性
),否则返回1。递归返回前更新全局变量,取更大的长度。 |
|
c****d 发帖数: 149 | 20 我在DTS里面定义以date 型全局变量
在一个DATA transformation里面的source
有类似如下的SQL语句
SELECT * from tablename
where tradedate=?
点击parameter按钮 在全局变量mapping 对话框里
把我定义的变量赋予这个 ?
在我的数据源市SQL server 的情况下一切运行
但是当我的数据原始Sybase时 点击parameter按钮
老是出错, 没有具体错误信息
是不是sybase 里使用parameter的语法有所不同? |
|
r****o 发帖数: 1950 | 21 请问,在multithreading环境下,假如用了mutex来保护某个全局变量,是不是对该全局
变量仍然要加volatile关键字才能保证该变量的值是没有被其他线程改过的? |
|
p******e 发帖数: 528 | 22 比方说我要调用一个程序f(),这个程序使用了别人写的一的库函数,结果这个库函数
定义了一个叫A的全局变量。当我要并行的运行多个子程序f()的时候,每个子程序创立
的全局变量A互相冲突。这时候有没有办法在子程序f开始的时候告诉这个子程序说所有
在这个子程序里边产生的变量都属于一个自己独立的命名空间,这样一来不同的并行过程
直接的A就不会互相冲突了。请问这个可能吗? |
|
g****t 发帖数: 31659 | 23 你说的这些东西,C等语言写起来照样无难度。以前有家公司出过
One time assignment C。为此学fp系统还不如学OO
所以你说的和scala这种不是一回事。FP函数可以改自己的上下文,这个和goto类似有
时候可以非常高效,有不少奇技淫巧。lisp半页纸就可以实现一个eval,你想想能搞出
多少花样吧
: FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
: FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不
一定要
用FP语
: 言实现,而是那几个FP编程原则。
: 每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变
量和
side
: effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显
: 一段程序是否引用了全局变量,一眼看过去并不明显
: 是否有side effect,也不明显
: 于是你只能自己记住,或者写在comments里。
: 全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住
: 人的注意力只能同时... 阅读全帖 |
|
a*****e 发帖数: 1700 | 24 这个例子只能说明 mutable by default 需要遵守一定规则 (使用 non-escaping 局部
变量)才能安全,想用它来例证 mutable by default 好?逻辑上讲不通。
为什么我说 non-escaping,因为如果使用 closure 捕捉局部变量成为环境变量,就
escape 了它们原先的定义域,mutation 会导致意想不到的状况,和使用全局 mutable
变量类似。 |
|
p*u 发帖数: 2454 | 25 来自主题: Programming版 - 编程的宗派 总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众,互相唾骂和残杀。
然后呢,又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问
题的工具就是好工具!
我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点点抽
象能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构
,structure),它的本质就是一个从名字到数据的“映射表”(map)。你可以用名字
从这个表里面提取相应的数据。比如point.x,就是用名字'x'从记录point里面提取相
应的数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即
使你插入了新的数据成员,仍然可以用原来的名字来访问已有的数据,而不用担心下标
错位的问题。
所谓“对象思想”(区别于“面向... 阅读全帖 |
|
t******0 发帖数: 629 | 26 我很多东西都不太会,答的比较乱,请明示小弟那些东西需要重点加强。
is
static
答:static in front of a function(函数作用域就是仅限于本文件的意思吧,内部函
数)
static for variable inside function (局部静态变量,下一次调用时,变量能
保持上一次调用退出的值)
static for var outside function (静态全局变量,不能在其他文件中引用的意
思吧)
them?
答:值传递,和指针传递(passbypointer)的知识,对于引用传递(pass by
reference)好像C语言里没有,C++才有吧,我说不太清,请高手明示
答:const就是变量不允许被改变,volatile的意思就是强调变量可以随周围环境突变
而变化体现实时性吧(似乎嵌入式的面试题,必考这个 volatile吧)
答:感觉是因为和精度有关,浮点数都有误差。
答:这个我不google的话绝对答不出来,现在也挺糊涂该怎么回答,请高手明示
答:stack就是强调“先入后出”就可以了吧,heap我只知道是树,p... 阅读全帖 |
|
c****p 发帖数: 6474 | 27
is
static
1. 文件内可见?
2. 在全局变量区分配空间?
3. 文件内可见?
them?
理论上函数传参都是对实参的数据拷贝(而不是实参本身)进行操作。因而对函数参数
的任何修改在函数返回后都不会影响实参的值。传值不说;传址实际是传递某变量所在
的内存地址,通过修改该地址指向的内存空间就可以实质上修改该变量的值。一般情况
下,需要在函数中修改变量值的行为都会使用传址。
const,不可修改,一般放在只读数据区(.rodata),尝试对其修改可能会引发段错(好
像编译器实现决定的);volatile,访问被其限定的变量时必须从内存中获取,实质上
使该变量成为non-cachable,常见于被I/O访问的内存空间。
大多数十进制小数转化成二进制存储时会有截断误差,表面上相等的两个浮点数实际并
不相等,一般用误差小于某阈值来判定相等。
not at all
stack:FILO,可重入式函数必须的结构;heap,memory pool,由OS管理,用户通过
malloc/free和new/delete实现动态内存的申请和释放。
pree
这个不懂,猜下:task不可打断当前in... 阅读全帖 |
|
t******0 发帖数: 629 | 28 我很多东西都不太会,答的比较乱,请明示小弟那些东西需要重点加强。
is
static
答:static in front of a function(函数作用域就是仅限于本文件的意思吧,内部函
数)
static for variable inside function (局部静态变量,下一次调用时,变量能
保持上一次调用退出的值)
static for var outside function (静态全局变量,不能在其他文件中引用的意
思吧)
them?
答:值传递,和指针传递(passbypointer)的知识,对于引用传递(pass by
reference)好像C语言里没有,C++才有吧,我说不太清,请高手明示
答:const就是变量不允许被改变,volatile的意思就是强调变量可以随周围环境突变
而变化体现实时性吧(似乎嵌入式的面试题,必考这个 volatile吧)
答:感觉是因为和精度有关,浮点数都有误差。
答:这个我不google的话绝对答不出来,现在也挺糊涂该怎么回答,请高手明示
答:stack就是强调“先入后出”就可以了吧,heap我只知道是树,p... 阅读全帖 |
|
c****p 发帖数: 6474 | 29
is
static
1. 文件内可见?
2. 在全局变量区分配空间?
3. 文件内可见?
them?
理论上函数传参都是对实参的数据拷贝(而不是实参本身)进行操作。因而对函数参数
的任何修改在函数返回后都不会影响实参的值。传值不说;传址实际是传递某变量所在
的内存地址,通过修改该地址指向的内存空间就可以实质上修改该变量的值。一般情况
下,需要在函数中修改变量值的行为都会使用传址。
const,不可修改,一般放在只读数据区(.rodata),尝试对其修改可能会引发段错(好
像编译器实现决定的);volatile,访问被其限定的变量时必须从内存中获取,实质上
使该变量成为non-cachable,常见于被I/O访问的内存空间。
大多数十进制小数转化成二进制存储时会有截断误差,表面上相等的两个浮点数实际并
不相等,一般用误差小于某阈值来判定相等。
not at all
stack:FILO,可重入式函数必须的结构;heap,memory pool,由OS管理,用户通过
malloc/free和new/delete实现动态内存的申请和释放。
pree
这个不懂,猜下:task不可打断当前in... 阅读全帖 |
|
n**s 发帖数: 2230 | 30 一点都没有信口开河。不管是什么软件,开发都应该符合软件工程的基本原则。
学过软件工程的本科生都知道,应该完全不用或者尽可能少用全局变量。可丰田的用了
10000多个全局变量。这使得质量难以控制。
还有其他方面提到的,比如模块功能太复杂而内聚性低,应该再按层次进一步划分模块
功能来简化,这都是软件工程最基本原则。
以上说的是设计方面的不专业。
至于提到的其他方面,比如内存越界,堆栈溢出,根本就是错误了。如果有代码交叉评
估,这在很多软件公司是标准做法,根本就通不过的。 |
|
f****t 发帖数: 15913 | 31 堆栈都94%满了居然没有保护,这就好比一个漂亮女的穿个丁字裤在黑人区jogging,出
事是早晚的事情。
全局变量是可以用的,但是如果有一万多个全局变量那程序就成了一张破鱼网,没有可
测性和可维护性,这也是自动加速迟迟没有解决的原因之一。
“最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速看来bug
具体在哪里根本没找到啊”,程序都烂成这样了,连丰田自己都找不到真正的解决方式
了,你还要别人找bug? |
|
i********e 发帖数: 1782 | 32 顶一下,丰田用户们要明白,你的车是靠一万一千个全局变量来运行的,码工们站出来
回答一下,有一万一千个的全局变量的程序是不是人间奇迹。 |
|
f****t 发帖数: 15913 | 33 堆栈都94%满了居然没有保护,这就好比一个漂亮女的穿个丁字裤在黑人区jogging,出
事是早晚的事情。
全局变量是可以用的,但是如果有一万多个全局变量那程序就成了一张破鱼网,没有可
测性和可维护性,这也是自动加速迟迟没有解决的原因之一。
“最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速看来bug
具体在哪里根本没找到啊”,程序都烂成这样了,连丰田自己都找不到真正的解决方式
了,你还要别人找bug? |
|
i********e 发帖数: 1782 | 34 顶一下,丰田用户们要明白,你的车是靠一万一千个全局变量来运行的,码工们站出来
回答一下,有一万一千个的全局变量的程序是不是人间奇迹。 |
|
d******a 发帖数: 238 | 35 static的作用是确保internal linkage. internal linkage 和global linkage 不同,
如果你只定义全局变量或函数,那么其它文件中也能访问它。很多情况下一个project
有多个人做,他们可能在各自的文件中定义相同的全局变量名,这样编译的时候就会有
问题啊。
garbage collection应该用的是mark&sweep的算法,这个《深入理解计算机系统》这书
上有讲,你到网上应该也能搜到些相关资料。 |
|
C***y 发帖数: 2546 | 36 弄个全局变量记录当前的depth,再弄两个全局变量,一个记录已知最深的depth,另外
一个记录对应的node
这样一遍就可以了吧 |
|
p*****2 发帖数: 21240 | 37 先打个草稿
首先,GoF设计模式要解决的问题不少都是因为OO不承认全局变量和函数造成的。
其次,设计模式的三个准则:中意与组合而不是继承, 依赖于接口而不是实现,高内
聚低耦合
第三,设计模式分为creational, structural, behaviroal。
Strategy: OO不承认函数造成的
Decrator: 就是平时常常提到的wrapper, 也属于中意与组合而不是继承
Factory: 感觉是纯OO的东西。Factory method有两种,一种是effective Java里谈的
,一种是GoF里谈的,我觉得都属于design pattern的范畴,但是要注意区分。因为平
时所说的DP一般指GoF,但是我感觉前者可能更常用,所以这个比较容易confused。面
试比较容易考到,感觉应该跟面试官说清楚。
Observer: 太常用了,平时见到的什么event,notification都是这个pattern。
Chain of Responsibility: 一看就想到了exception。除此之外,貌似driver的stack
也是这个意思。
Singleton:... 阅读全帖 |
|
q****x 发帖数: 7404 | 38 二弟,全局变量和单点不是一回事吧。全局变量是一个类型和名字组合到处都可访问。
单点是这个类型只能有一个。
design |
|
g*****g 发帖数: 34805 | 39 你说的这个我不明白。java如果你愿意,定义一个public static variable是完全可以
的,这就是你的全局变量,相应的有static init block来做初始化,有static
function来处理数据。用singleton纯粹是为了encapsulation,OO认为全局变量会
使得refactoring困难,使得数据不能保证consistency,所以推荐encapsulation,不
是因为实现不了的缺陷。我觉得你把因果搞反了。 |
|
g*****g 发帖数: 34805 | 40 你这个完全是概念错误,singleton顾名思义,是为了保证系统只有一个instance,跟
全局变量完全没有关系。比如大部分的spring bean完全没有instance variable,都是
singleton,难道也能说是为了全局变量?同时,singleton也不能保证thread safe,
是否thread safe纯粹看具体实现。Spring bean至于传统singleton的一大优势是可以
继承,这个在写架构里也很有用。
回到为什么要保证只有一个instance,通常不过因为初始化比较慢,为了节省资源和快
速处理而已。在server端的程序这个很常见,而且eager init才是常见的形式。你读读
Spring IoC就明白了。
Singleton |
|
f****4 发帖数: 1359 | 41 好虫说得对,你把先后因果弄颠倒了。
你现在理解的DP,是基于OO实现的DP。但是DP的本意是通用的设计方案。这也是为啥定
义DP的地方用得是一段话,而不是一个类图。Gof是严格按照这个形式定义DP的,后来
的资料大多都是以实现来定义DP。
说回Singleton和全局变量的问题
在C里面没有OO,能实现Singleton么?
对全局变量A提供一个访问接口(可以是函数,可以是个domain socket,可以是个
pipeline。。。)
Coding stand加一条“访问A必须通过接口,违反者将被开除”
这个方案算Singleton么?
手头上没有Gof的书,不过对照你贴的
“Singleton is used when a single object needs to be instantiated and all
requested object access goes through this particular instance. This object
can maintain state if desired.”
你看看有地方违反了没。
类工厂和抽象类工厂,C压根就没有... 阅读全帖 |
|
a*****d 发帖数: 123 | 42 在php里面怎么设置一个startup script啊?
比如我想从数据库里面读一些全局变量,在用户每一个
php file的request这些全局变量都available,但是不
想每一次用户的request都去access数据库。应该怎么
实现呢?
谢谢! |
|
j***n 发帖数: 301 | 43 来自主题: BuildingWeb版 - 优化js 一个比较大的算法程序,有20个左右的全局变量,听说全局变量的使用很影响效率。如
果建立一个类似pojo的类,把这些东西都塞进去,然后在函数之间传来传去。理论上能有
多大的改进? |
|
o*******i 发帖数: 396 | 44 啥叫 另一个线程的全局变量?
全局变量是进程空间的亚 |
|
|
|
z****e 发帖数: 2024 | 47 "unnamed namespace中的全局变量"???
unnamed namespace 本来就是只有internal linkage,何谈全局?
"整数类型的static const没问题"???
用不着static,和整数,const默认就是internal linkage的。
“inline函数当中的static变量,就只能定义在头文件中了”???
定义在cpp中完全没有问题。 |
|
p******e 发帖数: 528 | 48 比方说我有个一个并行程序,同时还有一个全局变量。如果多个线程都需要访问
同一个全局变量,会不会说由于多个线程都申请访问同一个内存地址而造成互相
竞争的情况呢?谢谢! |
|
g*******t 发帖数: 7704 | 49 全局变量会破坏代码的移植性, 一个function要求就是健壮,很容易copy paste到其
他项目里,
一个全局变量, 你的代码都无法复用, |
|
w***g 发帖数: 5958 | 50 signal里传进去的不能是成员函数。只能把对象指针放到全局变量里,
然后在sighandler里调用全局变量的方法。
std::bind返回的是个对象,不是函数指针,没法传入signal里。 |
|