摘要: 1 头文件里不要放全局变量,被多次包含时,生成.o文件连接时会冲突2 函数体里变量声明都要放到前面3 编译错误:error: two or more data types in declaration specifiers 一般都是少了分号,检查你的代码4 引用库函数时,有函数声明,使用也没错,但编译不过,出现比如如下错误: undefined reference to `inet_addr@4′ 是由于没有设置对应的链接库所致5 转自知乎为什么 C 语言源程序最后一行要是一个空行?否则的话编译器会报warning: #1-D: last line of file ends withou... 阅读全文
posted @ 2012-10-15 14:10 寒山月 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 1. ifdef宏作用:条件编译。利用标识符控制编译哪段代码,常见形式: #ifdef <标识符> 程序段1 #else 程序段2 #endif 应用1:提高C源程序的通用性。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,可以用以下的条件编译: #ifdef WINDOWS #define MYTYPE long #else #define MYTYPE float #endif如果在Windows上编译程序,则可以在程序的开始加上 :#define WINDOWS 其他平台上编译,则用如下语句: #... 阅读全文
posted @ 2012-04-09 11:35 寒山月 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 1. 关于数组长度数组可以指定长度然后初始化,也可以由编译器自动根据初始化内容计算数组长度int vector[5] = {1, 2, 3, 4, 5};//指定长度初始化int vector[] = {1, 2, 3, 4, 5, 6};//自动计算数组长度对于字符形式,可以直接指定初始化,也可以使用字符串的方法初始化//1char message1[] = {'H', 'e', 'l', 'l', 'o'};//2char message2[] = "Hello";char *message 阅读全文
posted @ 2012-03-28 14:03 寒山月 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 1.不要使用顺序表的场合 经常插入删除时,不宜使用顺序表 线性表的最大长度也是一个重要因素2.不要使用链表的场合 当读操作比插入删除操作频率大时,不应选择链表 当指针的存储开销,和整个结点内容所占空间相比其比例较大时,应该慎重选择3.实际应用中,顺序栈比链式栈用得更广泛些 顺序栈容易根据栈顶位置,进行相对位移,快速定位并读取栈的内部元素 顺序栈读取内部元素的时间为O(1),而链式栈则需要沿着指针链游走,显然慢些,读取第k个元素需要时间为O(k) 一般来说,栈不允许“读取内部元素”,只能在栈顶操作4. 顺序队列 固定的存储空间 方便访问队列内部元素5.链式队列 可以满足浪涌... 阅读全文
posted @ 2012-03-23 16:45 寒山月 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 今天在mingw下测试段代码发现sleep函数找不到,跳到stdlib.h中sleep的说明如下_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;这句上面还有段注释,意思是说SetErrorMode、Beep和Sleep三个函数舍弃了,可以使用win32 API对应的函数。使用sleep函数参考了这篇文章的写法1 #if defined(WIN32) || defined(WIN64) 2 #include <windows.h> 3 #define sleep 阅读全文
posted @ 2012-03-22 10:59 寒山月 阅读(1654) 评论(0) 推荐(0) 编辑
摘要: 在《C语言接口与实现:创建可重用软件的技术》一书中,提到了不透明指针:C语言中常使用typedef定义,比如:typedef struct stack *stack_t;该定义表示一个指向栈结构的指针,但并没有给出结构的任何信息,所以stack_t是一个不透明指针类型,客户程序可以自由的操纵这种指针,但无法反引用,即无法查看指针所指向结构的内部信息,只有接口的实现才有这种特权。好处:不透明指针隐藏了实现细节,有助于捕获错误。即只能传相同类型的参数给函数,否则将产生变异错误。例外是参数中有void型指针void *型指针作为一种通用的指针,可以和其它任何类型的指针(函数指针除外)相互转化而不需要 阅读全文
posted @ 2012-03-21 16:32 寒山月 阅读(2454) 评论(3) 推荐(0) 编辑
摘要: 今天备份linux资料,发现平常用onenote在代码目录里留了不少垃圾文件,很多文件夹都有,总不能一个一个去删啊,遂google之,《linux下递归删除目录下所有exe文件》帮了我,让我可以一次性删除某目录及其子目录下所有的同类型文件。命令:find . -name '*.onetoc2' -type f -print -exec rm -rf {} \;(1) "." 表示从当前目录开始递归查找(2) “ -name '*.onetoc2' "根据名称来查找,要查找所有以.onetoc2结尾的文件(3) " -typ 阅读全文
posted @ 2012-03-21 14:22 寒山月 阅读(1509) 评论(0) 推荐(0) 编辑
摘要: 在CSDN记录过一些东西,开始工作以后就没怎么更新过,最近发现离线文章发不上去了,貌似CSDN博客开发的有问题,转到博客园来。学校里用C++写过一些代码,觉得入门了,其实还在门槛上,尤其是到公司以后看到商业代码,感觉自己需要学习的东西还是很多,毕业就是新的开始,踏踏实实学习,用博客记录学习的点滴,希望自己能坚持下去。。。贴个代码,测试下word发布博客的效果#include <stdio>int main(){ printf("hello cnblog!");} 阅读全文
posted @ 2011-12-04 23:00 寒山月 阅读(187) 评论(3) 推荐(0) 编辑
摘要: 搞了四个多小时,搜索网上资料和不断尝试,总算在QT Create配置好了Opencv2.3了,在此记录一下安装过程。1.安装QT我安装的是QT SDK,安装时选择安装MinGW。QT的详细安装参见 http://www.yafeilinux.com/?p=515注意将bin文件夹的路径加入环境变量中,我这里是的bin文件夹的路径加入环境变量中,我这里是”G:\Qt\2010.05\mingw\bin”将QT的bin文件夹的路径也加入环境变量中,我这里是“G:\Qt\2010.05\qt\bin”2.安装CMake与编译OpenCV安装CMake for win,下载OpenCV2.3 for 阅读全文
posted @ 2011-08-01 09:55 寒山月 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 1. 文本框最后一个文字消失: 右键-设置自选图形格式-文本框-自选图形中的文字换行(w)前打勾,其它两个不打勾好像就可以解决这个问题。 阅读全文
posted @ 2011-05-10 17:31 寒山月 阅读(134) 评论(0) 推荐(0) 编辑