Euclidvi31's Blog
An elegent solution for keeping track of reality.
C++博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

外连接和内连接
在c程序中,const符号常量定义的默认连接类型是external linkage。因此,如果要在头文件中定义,必须使用static关键字,否则会导致"redefinition"的编译诊断信息。
但是在c++程序中,const符号常量定义的默认连接类型是static的,即internal linkage。这就是在头文件中定义而不需要static的原因。
posted @ 2009-04-17 16:29 Euclidvi31 阅读(327) | 评论 (0) | 编辑 收藏
 
由文件的输入想到的
整个的过程是由os的实验引起的。实验中要写一个反映出linux内核以及cpu信息的程序,从相关文件中读取就可以了。于是就用到了文件的操作》
读取文件的时候我用的是fgets(),他从文件中读取一行,因为所需要的内容不止一行,所以while(fgets(info,100,stream))。
我突然感觉为什么要这样写,fgets()会自动读取下一行的内容?于是我写了这样一个函数:
void fgets_test2()
{
    
char info[100];
    FILE 
*stream1, *stream2;
    
string word;
    stream1
=fopen("d:\\textquery.txt","r");
    stream2
=fopen("d:\\pp.txt","r");
    
if(fgets(info, 100, stream1) != NULL)
        cout 
<< info;
    
if(fgets(info, 100, stream2))
        cout 
<< info;
    
//fclose(stream1);
    
//stream1=fopen("d:\\textquery.txt","r");
    if(fgets(info, 100, stream1) != NULL)
        cout 
<< info;
    fclose(stream1);
    fclose(stream2);
}
发现所输出的stream1的内容还是连续的。但如果在中间重新打开文件的话会从头读入。
然后我debug一下,在这过程中找到了原因,是stream这个文件的指针在变化。我没读完一行,它就指向了下一行的首字母,也就是说fgets过程中在不断改变stream的指向,从而连续的读入。

posted @ 2009-04-05 16:11 Euclidvi31 阅读(98) | 评论 (0) | 编辑 收藏
 
gcc编译流程
http://book.csdn.net/bookfiles/132/1001324459.shtml
嗯,就这样了。
posted @ 2009-03-29 21:48 Euclidvi31 阅读(110) | 评论 (0) | 编辑 收藏
 
肆意一把
很肆意的一个周末,肆意的有些人心惶惶的。
不知道为什么从早晨d到晚上竟然不感觉累。嗯,晚上去帮同学过生日,然后ktv到很晚。
第二天起来继续d,一直到现在。
呵呵,这样的生活还是蛮容易打发时间的。
这周就忘记生活的紧迫感,肆意一把……
posted @ 2009-03-29 17:43 Euclidvi31 阅读(159) | 评论 (0) | 编辑 收藏
 
Embedded Lab2-3
第二个实验可谓是多灾多难,重复了好几次,今天终于把它搞定了,心里也很舒畅。
这个实验的主要内容也就是通过bootp为目标机分配ip地址,然后用tftp传送内核与文件。
具体的过程和很多参考资料上的差不多,就是利用minicom工具,
先minicom -s进入界面设置一下串口的信息(波特率、数据位、奇偶校验、停止位、数据流控制)
然后save as dfl ->exit.
下面就要设置/etc/bootptab文件了:
Xsbase270:\
   ht=1:\
   ha=0x123456789a00:\
   ip=192.168.0.50:\
   sm=255.255.255.0
这里有几点要说明的,ha是目标机的mac地址,我们先设置了这个地址,然后在启动目标机以后把目标机的mac地址改成这个。因为目标机向主机申请ip的过程中以广播的形式发送请求信号,主机在收到了信号之后会在bootptab中查询匹配的目标机,然后将其中的信息发回给目标机,也就是说 bootptab中的信息就是主机发给目标机的。书上说还要设置/etc/xinetd.d/bootp文件,因为这个已经设置好了,这步就没有做。
按理说一切的过程很简单,但就这东西一直failed。主机一直收不到目标机的请求。后来老师来看了一下,原来是主机的ip都没有设置
用ifconfig eth0设置一下就OK了。
后面就是用tftp传文件,既然已经连接上了,后面就没什么了。
posted @ 2009-03-20 15:09 Euclidvi31 阅读(204) | 评论 (0) | 编辑 收藏
 
C++ Primer 第十五章 Text_Query的实现

看到primer第十五章里面的一个查询的程序想把它实现出来。书上没有给出全部的代码,只是把关键的几个类以及成员函数的代码写了出来,书后面的题目也有叫我们实现它的功能。
书里面只提到了我们还需要实现TextQuery::size函数。然后就写了一个,再把main里面的东西改改就调试了。一开始编译没有问题,但一运行就会跳出来bug,在程序的一开头就崩溃了。后来在网上找了一份答案,对照了看了一下,是关于对Query对象执行=号的操作没有重载,是它不能运行。要添加这样的函数代码:

inline Query& Query::operator=(const Query &rhs)
{
        
++*rhs.use;
        decr_use();
        q
=rhs.q;
        use
=rhs.use;
        
return *this;
}

//因为main中有这么一句
/**//*Query q = Query("fiery") & Query("bird") |Query("wind"); */
这样就没什么问题了。
posted @ 2009-03-07 13:53 Euclidvi31 阅读(518) | 评论 (2) | 编辑 收藏
 
Embedded Lab1
第一次的实验比较简单,也就是熟悉一下环境,在linux下打些命令,烧写一下Boot Loader。老时鉴于我们大多数对于linux了解有限,哎,串口通信都没怎么弄,以至于后面的交叉编译也就没让我们做,估计要等到下次吧。
实验之前觉得arm板蛮神秘的,别人说它还满贵的呢,所以n多人做实验也只能分开来做了。
基本上就和书上的差不多,先tar解压缩JTAG的程序包,然后make一下,把生成的boot文件cp到/home/JTAG/Jflash-XSBase270下面。
最后运行一下boot就开始烧写了。
还是蛮简单的。
posted @ 2009-03-07 13:24 Euclidvi31 阅读(149) | 评论 (0) | 编辑 收藏
 
没啥好说的

刚才写了篇随笔,本来都快要写完了,但本本好像进程太多IE被迫关闭了,所以随笔也没影了。本来想重写的,想想也没啥好说的,就这样吧。反正是蛮不爽的。

posted @ 2009-02-28 23:46 Euclidvi31 阅读(143) | 评论 (0) | 编辑 收藏
 
C++学习笔记 @2.22

对于句柄类的概念一直模模糊糊的,其实很简单,就是为了储存和管理类指针,使用户不必担心指针的管理。
因为要进行面向对象的编程就要使用指针或者引用,比如进行函数的动态绑定,就拿书上的例子来说:

void get_price(Item_base object,const Item_base *pointer,const Item_base &reference)
{
cout 
<< pointer->net_price(1) << endl;
cout 
<< reference.net_price(1) << endl;
/**//*这两个就必须用指针或者引用才能绑定,运行是确定用哪个函数*/
cout 
<< object.net->price(1) << endl;
/**//*这个就只调用Item_base::net_price了*/
}
主要还是为了减轻用户的负担。
posted @ 2009-02-22 14:46 Euclidvi31 阅读(158) | 评论 (0) | 编辑 收藏
 
C++学习笔记
今天真的是有些霉,弄了书上的一个文本查询程序半天。程序本身是很简单的,用map来关联每个单词和所在的行。
读入文件中的行,书上用的是getline。这个函数以前在c语言的书里面就看过,但C++又有些不同,于是就在msdn中查了一下参数的用法。一开始还看错了,看成了iostream里面的成员函数basic_istream::getline,和书上的参数一对应,发现不对啊。书上的那个对应的应该是getline的模板。
模板如下:
template<class CharType, class Traits, class Allocator>
   basic_istream
<CharType, Traits>& getline(
      basic_istream
<CharType, Traits>& _Istr,
      basic_string
<CharType, Traits, Allocator>& _Str
);

template
<class CharType, class Traits, class Allocator>
   basic_istream
<CharType, Traits>& getline(
      basic_istream
<CharType, Traits>& _Istr,
      basic_string
<CharType, Traits, Allocator>& _Str,
      CharType _Delim
);

posted @ 2009-02-21 19:05 Euclidvi31 阅读(216) | 评论 (0) | 编辑 收藏
 
仅列出标题
共4页: 1 2 3 4 
随笔:40 文章:0 评论:4 引用:0
<2025年8月>
日一二三四五六
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

公告

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(2)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • Algorithm(1) (rss)
  • c\c++(8) (rss)
  • course(5) (rss)
  • Graphics(5) (rss)
  • Java(1) (rss)
  • Linux(4) (rss)
  • 其它(3) (rss)
  • 思考(3) (rss)
  • 随笔(9) (rss)

随笔档案

  • 2011年8月 (2)
  • 2011年6月 (3)
  • 2010年11月 (1)
  • 2010年9月 (1)
  • 2010年7月 (1)
  • 2010年3月 (1)
  • 2010年2月 (1)
  • 2009年11月 (1)
  • 2009年10月 (5)
  • 2009年9月 (3)
  • 2009年7月 (7)
  • 2009年6月 (3)
  • 2009年5月 (1)
  • 2009年4月 (2)
  • 2009年3月 (5)
  • 2009年2月 (3)

相册

  • tMt

收藏夹

  • 跨越边界系列 (rss)

e-mates

  • xiaxia321的blog

搜索

  •  

最新评论

  • 1. re: 一周之后
  • 呵呵,随便写写@施尹
  • --Euclidvi31
  • 2. re: 一周之后
  • ri,还写博客
  • --施尹
  • 3. re: C++ Primer 第十五章 Text_Query的实现
  • @SNY
    其它的内容就和书上的差不多,我发给你了。
  • --Eleven
  • 4. re: C++ Primer 第十五章 Text_Query的实现
  • 评论内容较长,点击标题查看
  • --SNY

阅读排行榜

  • 1. C#下使用SevenZipSharp进行文件压缩(4449)
  • 2. 在GF(p)中求乘法逆元(2384)
  • 3. 我用PowerShell--自动输入脚本(1388)
  • 4. 课程设计总结(859)
  • 5. 课程设计中期小结(675)

评论排行榜

  • 1. C++ Primer 第十五章 Text_Query的实现(2)
  • 2. 一周之后(2)
  • 3. 我用PowerShell--自动输入脚本(0)
  • 4. CBSE-09 组件隔离(0)
  • 5. 为Vista侧边栏Notes添加短信通知功能(0)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 Euclidvi31