博文

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......

阅读全文(2809) | 评论:0

最小生成树(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
   ......

阅读全文(4550) | 评论:0