博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
小刀听雨----xi2008wang'home
我想飞地更高............
manual.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
· 《UNIX环境高级编程》学习笔记
· 再读一遍《C语言程序设计》
· 《TCP/IP协议族》学习笔记
· C程序设计语言
· LINUX && UNIX && BSD
首页
关于作者
姓名:XiaoDao 职业:挨踢人 年龄:23 位置:深圳 个性介绍:闭关学习
||
<<
>>
||
我的分类
最新照片
上一张
下一张
幻灯片
停止播放
最新文章
·
关于浮点数
·
[转]如何使用gettext, p..
·
一步一步阅读webalizer的..
·
如何阅读源代码--工具篇
·
用CVS来管理自己的程序
最新留言
最新评论
·
AS5的配置文件现在放: /et..
·
呵呵,谢谢关注
sorry,最近..
·
太好了,这是第一篇,下面..
·
因为Makefile文件中:
pre..
·
呵呵 我的进度超过1/2了..
最新收藏
·
hwizhao
·
dirlt
·
juventus
·
bobo
统计信息
·
总访问量:15071
·
文章个数:48
·
评论条数:11
·
留言条数:0
·
网友推荐:
关于浮点数
<DIV> <DIV class=tit><FONT size=3><STRONG>浮点数的比较</STRONG></FONT></DIV> <DIV class=date> </DIV> <TABLE style="TABLE-LAYOUT: fixed"> <TBODY> <TR> <TD> <DIV class=cnt id=blog_text> <P><FONT size=2>1.两个浮点数为什么不能像整数那样直接用==比较是否相等?<BR>因为浮点数有精度问题。</FONT></P> <P><FONT size=2>2.浮点数为什么会有精度问题?<BR>在计算机中,数字都是以二进制的形式存在的,由于浮点数在十进制转为二进制的过程中,常常不能正好转到完全相等(例如1.0/3.0这样的数必然会损失,而像1.0/5.0这种数才不会有任何损失),所以就产生了精度问题。</FONT></P> <P><FONT size=2>3.如何实现浮点数的比较?<BR>小浮点数的比较采用绝对误差法;<BR>大浮点数的比较采用相对误差法;<BR>对于一般的浮点数必须采用相对误差和绝对误差相结合的方式才可以达到目的。</FONT></P> <P><FONT size=2>bool IsEqual(double a,double b,double e1,double e2)<BR>{<BR> if (a==b||fabs(a-b)<e1) return 1;<BR> if (fabs(a)>fabs(b)) return&……
查看全文
发表于:2008-04-24 ┆
阅读(90)
┆
评论(0)
[转]如何使用gettext, po, mo制作多语言应用程序
<DIV><STRONG><FONT color=#0080ff size=3>原文地址:http://blog.csdn.net/hwizhao/archive/2008/02/19/2106815.aspx <HR id=null> </FONT></STRONG></DIV> <DIV><STRONG><FONT size=5>一、翻译档制作部分</FONT></STRONG> </DIV> <DIV style="MARGIN-BOTTOM: 6pt; LINE-HEIGHT: 172%"><STRONG><FONT size=4><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 172%">1</SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 172%">、制作</SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 172%">po</SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 172%">档</SPAN></FONT></STRONG></DIV> <DIV style="MARGIN-BOTTOM: 6pt"><STRONG>(1)</STRONG><STRONG>生成<SPAN>template文件</SPAN></STRONG></DIV> <DIV>xgettext -k_ -o ui_pref.pot ui.c</DIV> <DIV> </DIV> <DIV><EM>pref.pot head</EM>.</DIV> <DIV> <TABLE style="MARGIN-LEFT: 2.75pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0> <THEAD> <TR> <TD style="BORDER-RIGHT: black 2.5pt solid; PADDING-RIGHT: 2.75pt; BORDER-TOP: black 2.5pt solid; PADDING-LEFT: 2.75……
查看全文
发表于:2008-04-19 ┆
阅读(204)
┆
评论(0)
一步一步阅读webalizer的源代码[1]
<DIV align=center><FONT size=5><STRONG>一步一步阅读webalizer的源代码[1]</STRONG></FONT></DIV> <DIV> </DIV> <DIV>小弟最近在看webalizer的源代码,下面是我的一些心得,希望对初学者有用</DIV> <DIV>从<A href="http://www.mrunix.net/webalizer/download.html">http://www.mrunix.net/webalizer/download.html</A>下载webalizer-2.01-10-src.tar.bz2<BR>[root@mylinux ~]# bzip2 -d webalizer-2.01-10-src.tar.bz2 #解压缩<BR>[root@mylinux ~]# tar -xvf webalizer-2.01-10-src.tar #解包<BR>[root@mylinux ~]# cd webalizer-2.01-10 #进入软件目录</DIV> <DIV><BR>[root@mylinux webalizer-2.01-10]# ls -l #文件的详细说明</DIV> <DIV>-rw-r--r-- 1 55 90 &n……
查看全文
发表于:2008-04-05 ┆
阅读(179)
┆
评论(2)
如何阅读源代码--工具篇
<P align=center><FONT size=6>如何阅读源代码--工具篇</FONT></P> <DIV> 在上一篇文章(<<如何阅读源代码>> (http://www.linuxaid.com.cn/developer/showdev.jsp?i=469))中, 我讲述了一些如何阅读GNU, Open Source源代码的原则,经验和技巧。上次曾经提到,有一些工具能够帮助我们更加快速,准确,有效的阅读源代码,掌握其结构。在这一篇文章中我将具体介绍几个工具,帮助我们阅读,分析源代码。<BR> 首先要介绍的工具叫做ctags. 这个工具在Unix下是一个常用的分析静态程序的工具,相信大家都用过。如果你对这个工具不熟悉,也不要紧。相信很多人都用过Windows系统下的开发工具,很多图形化界面的开发工具,诸如Visual C++, C++ Builder的IDE开发环境都提供了一种功能,就是在编辑器中可以准确的定位一个函数或者一个类的申明,或者实现,或者列出所有的在程序中调用该函数的地方。这种功能给程序员和阅读程序的人提供了很大的方便,不用在庞大的程序文本中到处搜寻一个字符串,只要轻轻的点一下鼠标就能准确的找到要找的东西。其实,Unix/Linux也有这样的工具,而且,继承了Unix程序小巧,精炼,功能强大,容易配合其它程……
查看全文
发表于:2008-03-31 ┆
阅读(177)
┆
评论(0)
用CVS来管理自己的程序
<DIV> <TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0> <TBODY> <TR> <TH class=f24> <H1><FONT color=#000000>用CVS来管理自己的程序</FONT></H1></TH></TR> <TR> <TD align=middle height=20><FONT color=#000000 size=2><SMALL>作者:姚继锋 来源:http://www.china-pub.com (2005-08-24 17:21:04)</SMALL></FONT></TD></TR> <TR> <TD><FONT color=#000000><BR></FONT></TD></TR> <TR> <TD><FONT color=#000000><!---广告 开始-------><!---广告 结束-------></FONT></TD></TR> <TR> <TD class=l17><FONT class=f14 id=zoom><!-- 正文begin --> <P><FONT color=#000000> 每个编写程序的人也许都有过这样的体验:对编写的程序作了一些修改,几天以后,我们可能发现上次的修改导致了其它的矛盾,甚至编译不能通过,但这时我们却很难找到自己刚在哪里作了改动。一般说来,我们总是希望自己完整的记录下一个程序开发的过程,记录下这个程序的每一点改进和调整。或许我们可以用备份的方法来解决这个问题,于是我们建立一个backup的目录,定期或不定期的将自己的源程序打包放进去,直到某一天整个硬盘都被这些文件撑满。这当然有些夸张,……
查看全文
发表于:2008-03-28 ┆
阅读(100)
┆
评论(0)
[转]使用Webalizer进行网络流量日志分析
<DIV> <P class=a14><STRONG>网络流量日志分析对于网络管理员来说非常重要。通过系统记载的流量日志,管理员可以清楚地看到用户对网络服务器的使用情况,能够从中挖掘及发现网络中可能存在的安全问题。</STRONG></P> <P class=a14>在Linux下有许多日志及流量分析软件。Webalizer就是其中一个高效、简单易用、免费的Web服务器日志及流量分析程序。Internet上的很多站点都使用它进行Web服务器日志及流量分析。本文将以对Linux下的代理服务器Squid的流量日志作分析为背景,详细介绍如何使用该软件进行流量分析。</P> <P class=a14>Webalizer具有以下一些特性:</P> <P class=a14>● 用C语言编写,具有很高的运行效率。在主频为200Mhz的机器上,Webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需15秒。</P> <P class=a14>●支持标准的一般日志文件格式(Common Logfile Format); 除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在Webalizer已经可以支持wu-ftpd xferlog日志格式以及Squid日志文件格式了。</P> <P class=a14>安装配置Webalizer</P> <P class=a14>1. 源代码包……
查看全文
发表于:2008-03-28 ┆
阅读(217)
┆
评论(0)
[转]如何阅读源代码
<P align=center><FONT size=6><STRONG>如何阅读源代码</STRONG></FONT> </P> <P><BR><STRONG>写在前面的话:<BR></STRONG> 自从我在linuxaid.com.cn上发表一些文章开始,就不断的有网友发来电子邮件,或者是就其中某些问题进行探讨,或者是查询其他文章的地址(往往这些网友看的是其他网站转载的我的文章),我很高兴自己写出的文章有这么多人回应,因为这是对我最好的赞赏,也很高兴有这么多人对我的文章感兴趣。但是常常因为工作关系。有很多邮件是询问我的其他文章在哪里能够找到,我不一定能够及时回复,也觉得回复同样的问题比较麻烦,所以在这里重复一下,我为linuxaid.com.cn写的文章都能在<A href="http://www.linuxaid.com.cn">www.linuxaid.com.cn</A>的应用开发栏目中找到,我的一部分文章收集在bambi.may10.ca/~ariesram/articles下面(这是一个很简陋的网页,只有文本格式的文章,也欢迎有兴趣的网友帮我设计一下网页),我的邮件地址:<A href="mailto:ariesram@linuxaid.com.cn">ariesram@linuxaid.com.cn</A>, 或者<A href="mailto:ariesram@may10.ca">ariesram@may10.ca</A>。请转载文章的网站保留这一说明,欢迎网友写email给我探讨问题,虽然我不能保……
查看全文
发表于:2008-03-27 ┆
阅读(146)
┆
评论(1)
升级vim7.1
<DIV>最近打算使用图形界面,因些想升级vim让它支持gvim</DIV> <DIV> </DIV> <DIV>[root@mylinux ~]# tar -xvf vim-7.1.tar //解压<BR>[root@mylinux ~]# cd vim71<BR>[root@mylinux ~]# ./configure --prefix=/usr/local/vim7 --with-x --enable-gui=gtk2 --with-features=big<BR>安装到/usr/local/vim7目录上,启用gvim<BR>[root@mylinux ~]# make //编译<BR>[root@mylinux ~]# make install //安装<BR>[root@mylinux ~]# mv /usr/bin/vim /usr/bin/vim63 //把vim6.3改名<BR>[root@mylinux ~]# ln -s /usr/local/vim7/bin/vim /usr/bin/vim //创建vim7.1的符号链接<BR>[root@mylinux ~]# ln -s /usr/local/vim7/bin/gvim /usr/bin/gvim //创建gvim的符号链接</DIV> <DIV> </DIV> <DIV>一切顺利,然而发现vim7.1</DIV> <DIV>1.不能显示语法高亮了<BR>2.backspace失效</DIV> <DIV>3.在窗口界面下,g……
查看全文
发表于:2008-03-26 ┆
阅读(139)
┆
评论(0)
基本的算法
<DIV>防止忘记,以后把学到的算法都写在这里:</DIV> <DIV> </DIV> <DIV>1.二分查找</DIV> <DIV> </DIV> <DIV> <TABLE style="BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #999 1px solid; WIDTH: 91.99%; BORDER-BOTTOM: #999 1px solid; HEIGHT: 280px" align=center> <TBODY> <TR> <TD> <DIV> </DIV> <DIV>int binsearch(int x, int v[], int n)<BR>{<BR> int low = 0;<BR> int high = n - 1;<BR> int mid;</DIV> <DIV> while (low <= high) { <BR> mid = (low + high) / 2;</DIV> <DIV> if (x > v[mid]) <BR> low = mid + 1;<BR> else if (x < v[mid]) <BR> high = mid - 1;<BR> else&n……
查看全文
发表于:2008-03-25 ┆
阅读(111)
┆
评论(0)
Vim+Taglist+Ctags组合
<DIV><BR><STRONG><FONT size=6>Vim+Taglist+Ctags组合</FONT></STRONG><BR>原文<BR><A href="http://vim-taglist.sourceforge.net/installation.html">http://vim-taglist.sourceforge.net/installation.html</A></DIV> <DIV> </DIV> <DIV><STRONG>要求:</STRONG><BR> 1.vim版本6.0及以上<BR>[root@mylinux ~]# vim -version<BR>VIM - Vi IMproved 6.3 (2004 June 7, compiled Dec 5 2004 06:16:10)<BR> 2.Exuberant Ctags5.0及以上(注意GNU与Unix的ctags不行)<BR>[root@mylinux ~]# ctags --version<BR>Exuberant Ctags 5.5.4, Copyright (C) 1996-2003 Darren Hiebert<BR> 3.vim必须支持system()调用,进入vim,执行:echo exists('*system') 如果显示1,表示支持</DIV> <DIV> </DIV> <DIV><STRONG>修改:</STRONG><BR> 主目录下的.vimrc增加filetype on(启用vim检测文件类型机制)</DIV> <DIV> </DIV> <DIV><STRONG>安装:</STRONG><BR> 1.下载taglist.zip解压到主目录,在主目录下新建目录.vim,解压到这个目录<BR>[root@mylinux ~]# mkdir .vim<BR>[root@mylinux ~]# cd .vim<BR>[root@mylinux .vim]# unzip taglist_4……
查看全文
发表于:2008-03-23 ┆
阅读(202)
┆
评论(0)
automake 实例hello.c
<DIV><STRONG><FONT size=6>automake 实例hello.c</FONT></STRONG></DIV> <DIV> </DIV> <DIV><STRONG>/******************************************<BR> * 小刀听雨-manual.cublog.cn-xi2008wang *<BR> *****************************************/</STRONG></DIV> <DIV><STRONG></STRONG> </DIV> <DIV>==============================================================================<BR>平台与工具:<BR>[root@mylinux hello]# uname -a<BR>Linux mylinux.xiaodao.com 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 athlon i386 GNU/Linux<BR>autoscan (GNU Autoconf) 2.59<BR>autoconf (GNU Autoconf) 2.59<BR>automake (GNU automake) 1.9.2<BR>==============================================================================</DIV> <DIV>[root@mylinux c]# mkdir hello <FONT color=#0000ff> //新建工程目录hello<BR></FONT>[root@mylinux c]# cd hello <FONT color=#0000ff>//进入工程目录hello<BR></……
查看全文
发表于:2008-03-22 ┆
阅读(165)
┆
评论(0)
静态局部变量,实例
<P>静态局部变量</P> <P> 1 #include <stdio.h><BR> 2 <BR> 3 int array_sum(int x[],int n)<BR> 4 {<BR> 5 static int sum<STRONG>;/* 只声明,不初使化 */</STRONG><BR> 6 static int i;<BR> 7 <BR> 8 sum = 0;<BR> 9 <BR> 10 for (i = 0; i < n; i++)<BR> 11 {<BR> 12 sum += x[i];<BR> 13 }<BR> 14 <BR> 15 return sum;<BR> 16 }<BR> ……
查看全文
发表于:2008-03-20 ┆
阅读(169)
┆
评论(0)
巩固几个vim命令与gcc选项
<DIV><FONT size=5> <STRONG> 巩固几个vim命令与gcc选项</STRONG></FONT><BR>移动:<BR>w下一词首<BR>e本词尾,下一词尾<BR>b本词首,上一词首<BR>{上一个空行<BR>}下一个空行</DIV> <DIV> </DIV> <DIV>yw复制光标后的一个词<BR>y3w复制光标后的三个词</DIV> <DIV> </DIV> <DIV>dh删除光标左一个字符 ndh<BR>dl删除光标右一个字符 ndl<BR>dj删除本行及下一行 ndj<BR>dk删除本行及上一行 ndk<BR>D删除光标后所有字符</DIV> <DIV> </DIV> <DIV>u复原 U全部取消<BR>.重得执行上一命令<BR>:redo 撤消上次命令</DIV> <DIV> </DIV> <DIV>==============================================================</DIV> <DIV>gcc</DIV> <DIV> </DIV> <DIV>-c 对源文件.c进行编译并汇编成目标文件.o</DIV> <DIV>-S 对源文件.c进行编译成汇编语言文件.s</DIV> <DIV>-E 对源文件.c进行预处理输出到屏幕</DIV> <DIV>-x language 指定使用的语言(C, C++, Objective-C)</DIV> <DIV>-I 指定使用的include文件目录</DIV> <DIV>-l 指定使用的库文……
查看全文
发表于:2008-02-17 ┆
阅读(257)
┆
评论(0)
linux自带的MAIL客户端用法
<DIV align=center><FONT size=5><STRONG>linux自带的MAIL客户端用法</STRONG></FONT></DIV> <DIV align=center><STRONG><FONT size=5></FONT></STRONG> </DIV> <DIV><STRONG>mail命令进入系统自带的MAIL</STRONG><BR>[root@mylinux ~]# mail<BR>Mail version 8.1 6/6/93. Type ? for help.<BR>"/var/spool/mail/root": 2 messages 2 new<BR>>N 1 <A href="mailto:root@localhost.local">root@localhost.local</A> Mon Dec 31 04:02 67/2018 "LogWatch for mylinux"<BR> N 2 <A href="mailto:root@localhost.local">root@localhost.local</A> Sun Jan 6 04:02 53/1689 "LogWatch for mylinux"<BR><STRONG>& help //进入帮助</STRONG></DIV> <DIV><STRONG></STRONG> </DIV> <DIV> Mail Commands<BR>t <message list> type messages //程序调用more显示消息,后接单个消息号或是一个范围,如t 1 或者t 1-2<BR>n&nb……
查看全文
发表于:2008-01-19 ┆
阅读(217)
┆
评论(0)
理解进程组
<DIV><FONT size=5>理解进程组</FONT></DIV> <DIV>[root@mylinux ap]# vi 9.4setpgid.c </DIV> <DIV>#include <stdio.h><BR>#include <unistd.h><BR>#include <sys/types.h></DIV> <DIV>int<BR>main(void)<BR>{<BR> pid_t pid;</DIV> <DIV> printf("before fork: pid = %d, gpid = %d\n", getpid(), getpgrp());<BR> if ((pid = fork()) < 0) {<BR> printf("fork error\n");<BR> exit(1);<BR> }<BR> else if (pid == 0) { <BR> printf("after fork child: pid = %d, gpid = %d\n", getpid(), getpgrp());<BR> setpgid(0, 0);<BR> printf("after setgpid child: pid = %d, gpid = %d\n",<BR> &……
查看全文
发表于:2008-01-04 ┆
阅读(233)
┆
评论(0)
typedef的四个用途和两个陷阱
<DIV><STRONG><FONT size=5>typedef的四个用途和两个陷阱</FONT></STRONG> <LI class=li2><STRONG>原讨论链接:</STRONG><A id=hl_tpURL href="http://community.csdn.net/expert/topicview1.asp?id=5298039" target=_blank><FONT color=#0000ff>http://community.csdn.net/expert/topicview1.asp?id=5298039</FONT></A> </LI></DIV> <P class=li2>用途一: <BR>定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: <BR>char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, <BR>// 和一个字符变量; <BR>以下则可行: <BR>typedef char* PCHAR; // 一般用大写 <BR>PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 <BR>虽然: <BR>char *pa, *pb; <BR>也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事。 <BR><BR>用途二: <BR>用在旧的C代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象……
查看全文
发表于:2007-12-29 ┆
阅读(192)
┆
评论(0)
APUE 习题9.2 创建新会话
<DIV>[root@mylinux ap]# vi 9.4setsid.c </DIV> <DIV> 1 #include <unistd.h><BR> 2 #include <stdio.h><BR> 3 #include <sys/types.h><BR> 4 #include <fcntl.h><BR> 5 <BR> 6 int<BR> 7 main(void)<BR> 8 { </DIV> <DIV> 9 pid_t pid;<BR> 10 </DIV> <DIV> /* 打印父进程的进程ID,及进程组ID ……
查看全文
发表于:2007-12-24 ┆
阅读(237)
┆
评论(0)
执行脚本的两种方法
<DIV>[root@mylinux ap]# vi 8.12awkexample <BR> 1 #!/bin/awk -f //这一行是让内核分析其解释器是awk,而awk却不会执行这一行<BR> 2 BEGIN {<BR> 3 for (i = 0; i < ARGC; i++)<BR> 4 printf "ARGV[%d] = %s\n", i , ARGV[i]<BR> 5 exit<BR> 6 }<BR>[root@mylinux ap]# chmod u+x 8.12awkexample //让脚本能够执行</DIV> <DIV>[root@mylinux ap]# ./8.12awkexample f1 f2 //相对<BR>ARGV[0] = awk<BR>ARGV[1] = f1<BR>ARGV[2] = f2<BR>[root@mylinux ap]# /bin/awk -f /root/ap/8.12awkexample f1……
查看全文
发表于:2007-12-23 ┆
阅读(245)
┆
评论(0)
8.11setuid.c
<DIV><STRONG>看完这个程序,绝对会进一步了解与进程相关的实际用户ID,有效用户ID,保存的设置ID</STRONG></DIV> <DIV><STRONG>与文件相关的setid位. 与用户相关的uid.</STRONG> </DIV> <DIV>[xiaodao@mylinux ~]$ vi 8.11setuid.c </DIV> <DIV>#include <unistd.h><BR>#include <stdio.h><BR>#include <sys/types.h><BR>#include <errno.h></DIV> <DIV>int<BR>main(void)<BR>{<BR> uid_t euid = geteuid();</DIV> <DIV> printf("uid = %d, euid = %d\n", getuid(), euid); //打印进程的实际用户ID,有效用户ID<BR> if (setuid(getuid()) == -1) { //因为getuid()为实际用户ID,因此可以设置进程有效用户ID</DIV> <DIV> printf("setuid %d error\n", getuid());<BR> exit(1);<BR> }<BR> else<BR>  ……
查看全文
发表于:2007-12-22 ┆
阅读(217)
┆
评论(0)
再读一遍《C语言程序设计》[第11章] 2
<DIV><STRONG>结构体:</STRONG>相当于记录,是一种构造类型,它由若干成员组成.每个成员可以是一个基本类型或构造类型,在说明与使用之前必须先定义它.<BR><STRONG>三种方法说明结构变量</STRONG>:<BR>1.先定义结构,再说明结构变量<BR>struct stu //定义一个结构stu<BR>{<BR> int num;<BR> char name[20];<BR> char sex;<BR> float score;<BR>};<BR>struct stu boy1,boy2;//说明stu类型的结构变量boy1,boy2<BR>2.在定义结构类型同时说明结构变量<BR>struct stu //定义一个结构stu<BR>{<BR> int num;<BR> char name[20];<BR> char sex;<BR> float score;<BR>}boy1,boy2;//说明结构变量boy1,boy2<BR>3.直接说明结构变量<BR>struct //没有定义结构<BR>{<BR> int num;<BR> char name[20];<BR> char sex;<BR> float score;<BR>}boy1,boy2;//直接说明结构变量boy1,boy2</DIV> <DIV>结构变量成员表示方法<BR>形式:结构变量名.成员名<BR>例:b……
查看全文
发表于:2007-12-17 ┆
阅读(280)
┆
评论(0)