标题:[求助]一个诡异的问题:static和形参
只看楼主
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
 问题点数:0 回复次数:4 
[求助]一个诡异的问题:static和形参

1、理论上讲,形参具有局部变量的性质,也就是说,如果不加static,它的生存期为函数运行期;
2、static可以将一个局部变量的生存期保持在整个程序执行期间。
3、如果将一个形参用关键字static修饰又会是什么结果呢?
例如:
#include <stdio.h>

int max( static int x, static int y );

void main( void )
{
int a = 5;
int b = 7;
int e = 1;
int f = 8;
int m1, m2;
m1 = max( a, b );
m2 = max( e, f );
}

int max( static int x, static int y )
{
return x > y? x : y;
}

程序运行时,在两次调用max()函数期间,x和y的值并未保持,是static对形参不起作用吗?还是别的原因?
请大家不吝指教!!

搜索更多相关主题的帖子: static 形参 
2006-12-17 21:59
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 

static 只针对你调用的函数是静态

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-12-18 09:40
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
得分:0 
谢谢回复。你的意思是它虽然存在,但在别的函数中无法引用或察看,是不?
2006-12-18 23:12
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
得分:0 

我的机子不支持
int max( static int x, static int y )

出现错误:错误 noname.c 18: 不兼容的存储器类型


菜鸟~~请多指教~~
2006-12-18 23:48
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
得分:0 
明显咯,,static只有把函数也定义成静态才行哦,,
2006-12-19 10:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-110171-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.303556 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved