由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一个面试题
相关主题
static如何作为函数?请教一个static 函数的问题
BigEndian和LittleEndian的设计static void foo( boolean * validPtr ) 中 static 啥意思?
[合集] C问题求助:如何强行从外部访问local static variable?C++类的静态函数对成员函数
a C++ questionjava 里在 main 外定义函数为什么必须要static?
这个函数有问题吗?"short" in Java
C++: operator new 为啥要是 static的, 不是有啥影响?c 里面的local static variable
问个C++编译器如何处理函数内的static 变量static variable存在heap还是stack?
inline function是否可以递归?请教:函数后面的 throw() 有意义么?
相关话题的讨论汇总
话题: num话题: int话题: f2话题: 面试题话题: stack
进入Programming版参与讨论
1 (共1页)
J*******g
发帖数: 267
1
定义下面两个函数
void f1(int num) {
int i = num;
f1(num);
}
boid f2(int num) {
static int i = num;
f2(num);
}
如果在main里面调用这两个函数,有什么区别?
c**a
发帖数: 316
2
f1 死的比较快

【在 J*******g 的大作中提到】
: 定义下面两个函数
: void f1(int num) {
: int i = num;
: f1(num);
: }
: boid f2(int num) {
: static int i = num;
: f2(num);
: }
: 如果在main里面调用这两个函数,有什么区别?

h****n
发帖数: 101
3
没试过
1肯定死
2static想来应该会中断吧
j*****k
发帖数: 1198
4
有区别的。
怎么都是死函数?
第一个要的内存大,最后可能会crash

【在 J*******g 的大作中提到】
: 定义下面两个函数
: void f1(int num) {
: int i = num;
: f1(num);
: }
: boid f2(int num) {
: static int i = num;
: f2(num);
: }
: 如果在main里面调用这两个函数,有什么区别?

O*******d
发帖数: 20343
5
2也会死掉。parameter是在stack上。

【在 h****n 的大作中提到】
: 没试过
: 1肯定死
: 2static想来应该会中断吧

j*****k
发帖数: 1198
6
嗯,不过死得慢

【在 O*******d 的大作中提到】
: 2也会死掉。parameter是在stack上。
J*******g
发帖数: 267
7
如果把f2改成这样呢?
void f2(){
static int i = 1;
f2();
}

【在 O*******d 的大作中提到】
: 2也会死掉。parameter是在stack上。
D*******a
发帖数: 3688
8
这不还是爆stack么?

【在 J*******g 的大作中提到】
: 如果把f2改成这样呢?
: void f2(){
: static int i = 1;
: f2();
: }

k****f
发帖数: 3794
9
f2编译过不去的,所以没法死机的

【在 J*******g 的大作中提到】
: 定义下面两个函数
: void f1(int num) {
: int i = num;
: f1(num);
: }
: boid f2(int num) {
: static int i = num;
: f2(num);
: }
: 如果在main里面调用这两个函数,有什么区别?

j*****k
发帖数: 1198
10
一样地死,只不过稍微慢点

【在 J*******g 的大作中提到】
: 如果把f2改成这样呢?
: void f2(){
: static int i = 1;
: f2();
: }

O*******d
发帖数: 20343
11
function call 本身就要在stack上用内存。

【在 J*******g 的大作中提到】
: 如果把f2改成这样呢?
: void f2(){
: static int i = 1;
: f2();
: }

x****u
发帖数: 44466
12
貌似某些编译器能把这样的尾递归展开吧。

【在 O*******d 的大作中提到】
: function call 本身就要在stack上用内存。
1 (共1页)
进入Programming版参与讨论
相关主题
请教:函数后面的 throw() 有意义么?这个函数有问题吗?
面试问题C++: operator new 为啥要是 static的, 不是有啥影响?
数组问题问个C++编译器如何处理函数内的static 变量
请问c++中操作符可以声明为虚函数吗?inline function是否可以递归?
static如何作为函数?请教一个static 函数的问题
BigEndian和LittleEndian的设计static void foo( boolean * validPtr ) 中 static 啥意思?
[合集] C问题求助:如何强行从外部访问local static variable?C++类的静态函数对成员函数
a C++ questionjava 里在 main 外定义函数为什么必须要static?
相关话题的讨论汇总
话题: num话题: int话题: f2话题: 面试题话题: stack