
C C++ Linux
花间派bower
这个作者很懒,什么都没留下…
展开
-
关于typedef一句话的解释
语句:typedef int MazeType[25][25];解释:typedef 基本数据类型 数组类型名[常量表达式];这样为这种数组定义了一个别名。应用:MazeType M; //等价于 int M[25][25];原创 2008-09-05 10:32:00 · 807 阅读 · 0 评论 -
存储类 (作用域、链接和存储时期)
作用域:程序中可以访问一个标识符的一个或多个区域。一个C变量的作用域可以是代码块作用域、函数原型作用域或者文件作用域。 一个代码块是包含在开始花括号和相应的结束花括号之内的一段代码。在代码块中定义的变量具有代码块作用域(block scope),从该变量被定义的地方到包含该定义的代码块的末尾该变量均可见。另外,函数的形式参量尽管在函数的开始花括号前进行定义,同样原创 2009-06-02 10:54:00 · 1118 阅读 · 0 评论 -
存储类说明符 auto register static extern typedef
auto表明一个变量具有自动存储时期。register只能用于具有代码块作用域的变量。static: 当用于具有代码块作用域的变量的声明时,使该变量具有静态存储时期,从而得以在程序运行期间存在并保留其值。 变量仍具有代码块作用域和空链接。 static用于具有文件作用域的变量的声明时,表明该变量具有内部链接。extern表明一个已经在别处定义了的变量。原创 2009-06-02 17:19:00 · 843 阅读 · 0 评论 -
存储类和函数
函数也具有存储类。函数可以是外部的(默认情况下)、静态的,还有内联函数。函数前面加个static修饰,就是静态的。只可以在定义它的文件中使用。通常使用关键字extern来声明在其他文件中定义的函数。这一习惯用法主要是为了使程序更清晰,因为除非函数声明使用了关键字static,否则认为它是extern的。也就说,在一个文件中正常定义的函数,在其他的文件可以直接使用。(?)原创 2009-06-05 11:40:00 · 1457 阅读 · 0 评论 -
随机数函数
rand()函数来产生随机数。相关函数:srand()函数说明:rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。返回值:返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,原创 2009-06-05 13:57:00 · 827 阅读 · 0 评论 -
内存分配,malloc()和free()
c primer plus P340为了在程序运行时分配内存。 在头文件stdlib.c中有malloc()和free()的原型。malloc()接受一个参数:所需内存字节数,然后malloc()找到可用内存中一个大小适合的块,返回那块内存第一个字节的地址。ANSI C标准使用了一个新类型:指向void的指针,被用作“通用指针”。例:double *ptd;ptd = (d原创 2009-06-08 14:20:00 · 580 阅读 · 0 评论 -
ANSI C的类型限定词
一个变量是以它的类型和存储类表征的。C90增加了两个属性:不变性和易变性。这些属性是通过关键字const和volatile声明的。const:不能通过赋值、增量或减量计算来修改该变量的值。然而,可以初始化一个const变量。在函数定义的参数中使用:const int array[]和const int *array相同,表明array指向的数据是不可变的。 在文件之间共享c原创 2009-06-08 17:06:00 · 540 阅读 · 0 评论 -
Dev编译器的编译问题
上周末开始dev-c++开始有个问题,就是写c primer plus的12.11这个例子的时候,点debug或者run,会弹出个提示框 “Project is not compiled”,不会运行,似乎也没有链接,因为把include库文件的那句注释掉也不会报错,但是会快速地弹出那个显示error和warning的框,但是一闪即逝。重建一个工程,再把文件都包含进来也不行。在某个国外论坛上看到原创 2009-06-08 11:12:00 · 3477 阅读 · 0 评论 -
文件输入/输出
13.1 和文件进行通信文本视图和二进制视图:在文本视图中,程序看到的内容和二进制的内容可能不同,例如MS-DOS文本文件用回车符和换行符的组合/r/n来表示行尾,Macintosh用一个回车符/r来表示行尾。C程序使用一个/n表示行尾。所以,如果C程序以文本视图模式处理一个MS-DOS文本文件,在读取文件时它会将/r/n转换为/n,在写入文件时它会将/n转换成为/r/n.UNIX原创 2009-06-09 09:47:00 · 500 阅读 · 0 评论 -
文件输入/输出
13.3 一个简单的文件压缩的程序----就是读取文件内容,每三个提取出一个字符 :-(/********************************************************* c primer plus p360 把您的文件压缩到原来的三分之一 ********************************************************原创 2009-06-09 16:21:00 · 424 阅读 · 0 评论 -
指针和数组等价 的意思
char c[10]; //scanf("%s",&c); scanf("%s",c); 这两句话的作用一样,哪句都对,且结果一样。 因为数组名做参数时会退化成指针。数组名就是首地址。那么,在C语言中,“指针和数组等价”是什么意思? 说数组和指针 “等价”不表示它们相同, 甚至也不能互换。它的意思是说数组和指针的算法定义可以用指针方便的访问数原创 2009-06-10 16:11:00 · 1886 阅读 · 0 评论 -
13.7 其他标准I/O函数
int ungetc(int c, FILE *fp) 将c指定的字符放回输入流中。int fflush(FILE *fp) 将缓冲区中任何未写的数据发送到一个由fp指定的输出文件中去。这个过程成为刷新缓冲区。如果fp是一个空指针,则刷新掉所有的输出缓冲。fread()和fwrite()函数:二进制。原创 2009-06-11 14:39:00 · 491 阅读 · 0 评论 -
14 章 结构和其它数据形式
结构声明:例:struct book{ char title[MAXTITL]; char author[MAXAUTL]; float value;};使用: struct book library;以上等于:struct book{ char title[MAXTITL]; char author[MAXAUTL原创 2009-06-11 16:24:00 · 474 阅读 · 0 评论 -
c primer plus Chapter 14 p383
第十四章 结构和其他数据形式程序清单14.2 manybook.c程序 /******************************************************** manybook.c--包含多本书的图书目录 *******************************************************/#include #def原创 2009-06-23 09:37:00 · 895 阅读 · 1 评论 -
c primer plus 14.13 奇特的声明
规则:1.表示一个数组的[]和表示一个函数的()具有同样的优先级,这个优先级高于间接运算符*的优先级。2.[]和()都是从左到右进行结合的。int board[8][8]; //int数组的数组int ** ptr; //指向int的指针的指针int *risks[10]; //具有10个元素的数组,每个元素是一个指向int的指针。规则1,ri原创 2009-06-24 13:40:00 · 506 阅读 · 0 评论 -
strtol()函数
/************************************************************* c primer plus P315 11.29 ---尝试使用strtol()函数 *************************************************************/#include #include int main(voi原创 2009-06-02 09:49:00 · 935 阅读 · 0 评论 -
字符串输入总结
gets():遇到换行字符(/n,回车)认为输入结束,换行符之前(不包括换行符)的所有字符读入,在这些字符后添加一个空字符(/0)。它将读取换行符并将其丢弃。这里若定义的数组比输入的数据的长度小,这些输入的数据会覆盖内存的别的地方。为了避免这个问题,引入了fgets()函数,可以指定字符长度。(下篇文章有fgets内容)。scanf()函数:用%s格式读取。scanf()和gets原创 2009-05-21 18:03:00 · 589 阅读 · 0 评论 -
vi编辑器
vi filename,如果没有这个文件,就创建。如果有,就开始编辑vi两种模式:命令模式和编辑模式。开始时就是命令模式,接收命令。按a,表示add,就可以进入编辑模式。在编辑模式按Esc键就转换到命令模式退出:在命令模式下用:q 退出vi:q! 不保存文件并退出vi另外:w 保存当前文件h 光标左移一个字符l 光标右移一个字符k或Ctrl+p 光标上移一行j或C原创 2009-04-14 14:29:00 · 393 阅读 · 0 评论 -
09.4.15 C++ primer
chapter 1 Getting Started iostream库,defines four IO objects. To handle input, we use an object of type istream named cin,也被称为标准输入。For output, we use an ostream object named cout,标准输出。Two other原创 2009-04-16 10:30:00 · 350 阅读 · 0 评论 -
09.4.14
昨天和今天的学习内容:1.装上了虚拟机,并安装了Ubuntu服务器版。2.磁盘分区:主分区,扩展分区,逻辑分区。Linux下所有的设备等任何的东西都是文件,文件有字符形式(如键盘、打印机)和二进制(块设备,如硬盘、u盘,光驱)两种。/dev下能看到所有的设备。Linux分区的命名,hd sd。xxyN,xx:分区所在的设备类型,hd(IDE硬盘),sd(SCSI)。y:分区所在原创 2009-04-14 11:09:00 · 504 阅读 · 0 评论 -
QEMU
QEMU是一套由Fabrice Bellard所编写的模拟操作系统的自由软件。跨平台原创 2009-04-27 13:40:00 · 424 阅读 · 0 评论 -
qemu install
简要说明:本目录下建立了一个Debian lenny-armel 虚拟机映像文件,预先安装好了gcc, g++, make,qt3运行库和开发库,可以直接编写运行qt3 armel平台的应用程序.运行此虚拟机映像,需要在运行的主机上预先安装 qemu虚拟机 和 Xephyr虚拟X服务器安装命令: apt-get install qemu xserver-xephyr启动虚拟机命令: .转载 2009-04-27 14:03:00 · 762 阅读 · 0 评论 -
Ubuntu web sites
www.ubuntu.comwww.ubuntuforums.orgwww.ubuntu.org.cnforum.ubuntu.org.cnwiki.ubuntu.comwiki.ubuntu.org.cnwww.fsf.orgwww.kernel.orgwww.gnome.orgwww.kde.orgwww.debian.org原创 2009-04-27 08:55:00 · 383 阅读 · 0 评论 -
qt
Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 download site: http://u.download.youkuaiyun.com/source/1199358 (word doc)Qt.4.C++.GUI.Programe.chm [24hours-qt.原创 2009-04-27 13:48:00 · 590 阅读 · 0 评论 -
range of type
在32位系统中int是4字节的,32bit,正整数取值范围,和以前的long是一样的,-2147483648 to 2147483647 gcc , sizeof(int) = 4key: float的存储规范ieee754标准原创 2009-04-29 17:21:00 · 799 阅读 · 0 评论 -
Points on C 第一章总结
1. 程序的数据放在哪里? 就在main()函数中。2. int read_column_numbers(int columns[], int max); 将数组传到函数中时,一般还要再加个参数表示数组的大小。3. 要从逻辑上删除一段c代码,好的方法是使用#if指令: #if 0 statements #endif4. st原创 2009-07-16 10:20:00 · 653 阅读 · 0 评论 -
正确和错误只差一个括号的位置
从文件中读数据,在windows下读出来的老是一个个笑脸。我到另一台机子的linux上再敲一遍,结果是对的,我还以为是windows的问题。原来是我写的程序里 while((ch = getc(fp) )!= EOF)的括号位置不对,赋值运算符的优先级低,get(fp)和EOF比较,得到的结果1赋给ch,笑脸就是为1的char值。原创 2009-07-22 14:12:00 · 655 阅读 · 0 评论 -
重命名一个文件的代码
// crt_renamer.c /* This program attempts to rename a file named * CRT_RENAMER.OBJ to CRT_RENAMER.JBO. For this operation * to succeed, a file原创 2009-07-22 14:37:00 · 875 阅读 · 0 评论 -
memwatch使用笔记
memwatch是一个用于c和c++的内存泄漏检测工具,因为我还不知道的原因,在c++里不是很好用,但是在c是绝对可用的。memwatch从网上下下来的压缩包中,主要就是两个源文件:memwatch.h和memwatch.c,这也是为什么说它的跨平台的原因。首先将它们放在和我们写的源程序相同的路径下,加到我们的工程中。我现在用的是windows下的Dev-C++开发环境,有如下步骤:1.原创 2009-05-21 15:13:00 · 1891 阅读 · 0 评论 -
MVC模式and so on
key: os:进程调度,内存管理,驱动,文件系统,网络 IPC windows中的内容保护,虚存 bootloader,开发板带两个bootloader。uboot 文件系统:crasfs、jffs、vnifs GUI: X、KDriver Linux内核支持frame原创 2009-05-23 16:19:00 · 446 阅读 · 0 评论 -
fgets()函数从文件中读数据
这是c primer plus第11章的内容。第五版中文版p293。fgets需要三个参数,第一个是读取的数据要存放的指针,第二个是允许读取的最大字节数,第三个是从哪里读取。课本上的例子是从终端输入,此时第三个参数写成stdin。但是要从文件中读取没有例子,下面是从网上找来改编的,在dev下运行通过: #include int main(int argc, char *argv[]原创 2009-05-21 17:45:00 · 2860 阅读 · 1 评论 -
c++调用c时回调函数的处理
在c++调用c程序时,回调函数是不能直接使用的,以c++调用c的Gtk函数为例, 比如,在g_idle_add (init, NULL); 这句话中,一旦idle就会调用函数init(), 这个init()还会对类的成员变量进行处理。这时,假如把init()简单地定义为类的普通成员函数就会出现类型不匹配的错误,因为g_idle_add()要求它的第一个参数是个普通的函数指针原创 2009-09-07 14:51:00 · 1929 阅读 · 1 评论