随笔分类 -  C/C++

Learning C/C++
摘要: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 寒山月 阅读(519) 评论(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 寒山月 阅读(290) 评论(0) 推荐(0)
摘要:1.不要使用顺序表的场合 经常插入删除时,不宜使用顺序表 线性表的最大长度也是一个重要因素2.不要使用链表的场合 当读操作比插入删除操作频率大时,不应选择链表 当指针的存储开销,和整个结点内容所占空间相比其比例较大时,应该慎重选择3.实际应用中,顺序栈比链式栈用得更广泛些 顺序栈容易根据栈顶位置,进行相对位移,快速定位并读取栈的内部元素 顺序栈读取内部元素的时间为O(1),而链式栈则需要沿着指针链游走,显然慢些,读取第k个元素需要时间为O(k) 一般来说,栈不允许“读取内部元素”,只能在栈顶操作4. 顺序队列 固定的存储空间 方便访问队列内部元素5.链式队列 可以满足浪涌... 阅读全文
posted @ 2012-03-23 16:45 寒山月 阅读(286) 评论(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 寒山月 阅读(1726) 评论(0) 推荐(0)
摘要:今天看C编程指南里说道:1)在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨循环层执行的次数。参考代码如下:1 //低效率:长循环在最外层 2 for(row=0;row<100;row++) 3 { 4 for(col=0;col<5;col++) 5 { 6 sum=sum+a[row][col]; 7 } 8 } 1 //高效率:长循环在最内层 2 for(col=0;col<5;col++) 3 { 4 for(row=0;row<100;row++) 5 { 6 sum=sum+a[row][col]; 7 } 8 } 2)如果在 阅读全文
posted @ 2011-01-12 15:16 寒山月 阅读(260) 评论(0) 推荐(0)