免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8576 | 回复: 8
打印 上一主题 下一主题

[C] C语言里有没有static这个关键字? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-26 09:33 |显示全部楼层 |倒序浏览
C语言里有没有static这个关键字?
比如static void main(){...}这样的?
------------------
我看到有人这么说的:
------------------
静态变量的类型说明符是static。
静态变量当然是属于静态存储方式,但是属于静态存储方式的变量不一定就是静态变量。
例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。
--------------------
还有谁能用C实现个冒泡排序算法?
对int[] a={1,3,5,7,9,0,2,4,6,8}进行从小到大地排序?

=======
最后的结果应该为:
{0,1,2,3,4,5,6,7,8,9}

=======

[ 本帖最后由 simhare 于 2009-6-26 09:48 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-06-26 09:35 |显示全部楼层
我知道C#里是有的,不知道C里面有没有?
=========
还有谁能用C实现个冒泡排序算法?
对int[] a={1,3,5,7,9,0,2,4,6,8}进行排序?

论坛徽章:
0
3 [报告]
发表于 2009-06-26 09:35 |显示全部楼层

回复 #1 simhare 的帖子

这个应该比较基本吧?
-------------
谁知道?

论坛徽章:
0
4 [报告]
发表于 2009-06-26 09:38 |显示全部楼层
原帖由 simhare 于 2009-6-26 09:35 发表
我知道C#里是有的,不知道C里面有没有?
=========
还有谁能用C实现个冒泡排序算法?
对int[] a={1,3,5,7,9,0,2,4,6,8}进行排序?

---------
请用纯C代码实现,不要C++,也不要C#等等其它语言。

论坛徽章:
0
5 [报告]
发表于 2009-06-26 09:45 |显示全部楼层
谢谢各位的回复,我正在看。
----------------------------
那么谁能解决第二个问题呢?
纯C实现冒泡排序!
==========
我土了一回。
标准C实现冒泡排序。

[ 本帖最后由 simhare 于 2009-6-26 09:50 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-06-26 09:51 |显示全部楼层

回复 #10 aaaaa5aa 的帖子

我看到有人说:
============
当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数外部函数
1 内部函数(又称静态函数)
如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一支程序的其它文件中的函数调用,这种函数称为内部函数
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:
static  函数类型  函数名(函数参数表)
{……}
关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数
但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。
================
哦,看来static 本来是有两层涵义的,一是"静态的"存储方式,二是函数的作用域

[ 本帖最后由 simhare 于 2009-6-26 09:55 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-06-26 09:57 |显示全部楼层

回复 #12 lsupper 的帖子

我错了,
我想说的是"标准C"。

论坛徽章:
0
8 [报告]
发表于 2009-06-26 09:58 |显示全部楼层

回复 #13 simhare 的帖子

他还提到了外部函数:
===============
2 外部函数
外部函数的定义:
在定义函数时,如果没有加关键字“static”,表示此函数是外部函数,
或者加了关键字“extern”,也表示此函数是外部函数:
[extern]  函数类型  函数名(函数参数表)
{……}
调用外部函数时,需要对其进行说明
[extern]  函数类型  函数名(参数类型表)[,函数名2(参数类型表2)……];
-----------------------
为什么"调用外部函数时,需要事先对其进行说明"?
嗯,原来是在进行调用外部函数之前要先把要调用的函数,"申明"一下。
================
[案例]外部函数应用。
(1)文件mainf.c
main()
{  
      extern void input(…),process(…),output(…);
      input(…);  
      process(…);  
      output(…);
}

(2)文件subf1.c
……
extern  void input(……)                           /*定义外部函数*/
{……}
(3)文件subf2.c
……
extern  void process(……)                     /*定义外部 函数*/
{……}
(4)文件subf3.c
……
extern void output(……)                        /*定义外部函数*/
{……}
==================

[ 本帖最后由 simhare 于 2009-6-26 10:16 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-06-26 11:00 |显示全部楼层

回复 #1 simhare 的帖子

========
好吧,都没有C的冒泡排序法是吧?
我到网上找一个。
========
那这个话题到此暂时告一段落吧?!
谢谢各位的积极参予!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP