博文
C99标准新特性(2007-03-20 09:37:00)
摘要:C99
在ANSI标准化后,WG14小组继续致力于改进C语言。新的标准很快推出,就是ISO9899:1999(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年三月采用。
在C99中包括的特性有:
对编译器限制增加了,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节 (extern 要求支持到 31)
预处理增强了。例如:
宏支持取参数 #define Macro(...) VA_ARGS
使用宏的时候,参数如果不写,宏里用 #,## 这样的东西会扩展成空串。(以前会出错的)
支持 // 行注释(这个特性实际上在C89的很多编译器上已经被支持了)
增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool
支持 long long, long double _Complex, float _Complex 这样的类型
支持了不定长的数组。数组的长度就可以用变量了。声明类型的时候呢,就用 int a*? 这样的写法。不过考虑到效率和实现,这玩意并不是一个新类型。所以就不能用在全局里,或者 struct union 里面,如果你用了这样的东西,goto 语句就受限制了。
变量声明不必放在语句块的开头。
当一个类似结构的东西需要临时构造的时候,可以用 (type_name){xx,xx,xx} 这有点像 C++? 的构造函数
字符串里面,\u 支持 unicode 的字符
支持 16 进制的浮点数的描述
所以&nbs......
最小生成树(2007-03-20 09:27:00)
摘要:/**********************************************************************\
功 能: 利用Kruscal算法求 " 无向图 " 的最小生成树
输入说明: 首先输入图的顶点数 n 边数 m 接着下一行每行输入每一条边
包括起点,终点,权值 (顶点从 1 开始编号)
输出说明: 输出最小生成树的各边,包括起点,终点,权值,最后输出总
的权值。
调试实例: 输入文件:( 用管道调试 )
6 10
1 2 4
1 3 8
1 4 5
1 6 7
4 3 2
......