c++模板函数作为参数的疑惑
摘要:为什么22行只能传一个模板函数作为参数,而非模板却编译失败,求解释。
阅读全文
posted @
2013-08-10 11:50
吃吃户
阅读(464)
推荐(0)
src/comm/clnt_download.h:7: 错误:expected initializer before ‘using’
摘要:比如在a.c 里面有#include <b.h>#include <c.h>而编译器提示你c.h中有上述错误时,有可能是b.h声明函数的结尾漏了分号。。。
阅读全文
posted @
2012-01-13 20:03
吃吃户
阅读(674)
推荐(0)
函数对象
摘要:尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。函数对象(也称“算符”)是重载了“()”操作符的普通类对象。因此从语法上讲,函数对象与普通的函数行为类似。用函数对象代替函数指针有几个优点,首先,因为对象可以在内部修改而不用改动外部接口,因此设计更灵活,更富有弹性。函数对象也具备有存储先前调用结果的数据成员。在使用普通函数时需要将先前调用的结果存储在全程或者本地静态变量中,但是全程或者本地静态变量有某些我们不愿意看到的缺陷。其次,在函数对象中编译器能实现内联调用,从而更进一步增强了性能。这在函数指针中几乎是不可能实现的。下面举例说明如何定义和使用
阅读全文
posted @
2012-01-12 11:31
吃吃户
阅读(2684)
推荐(0)
头文件循环依赖
摘要:在C语言里面,有时候为了方便(方便的同义词是偷懒),函数就直接在头文件里面实现了。那么这样子有什么问题呢?下面举个例子,这个例子只有3个文件/* fun.h */#ifndef FUN_H#define FUN_Hvoid base(){};void fun();#endif/* fun.c */#include "fun.h"void fun(){ base();}/* main.c */#include "fun.h"int main(){ fun(); return 0;}好,然后gcc一下gcc -c main.c (通过)gcc -c fun.
阅读全文
posted @
2012-01-12 11:31
吃吃户
阅读(6345)
推荐(0)
C语言高效编程的四大绝招
摘要:编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法#define LEN 32char string1 [LEN];memset (string1,0,LEN);strcpy (string1,"This is a example!!"); 方法B:const char string2[LEN] ="This i
阅读全文
posted @
2012-01-12 11:29
吃吃户
阅读(277)
推荐(0)
segmentation fault情况积累
摘要:(1)FILE *fp = fopen("filename", "wt+"); if(fp == NULL) { //文件打开失败 } else { //文件打开成功 } fprintf(fp, "……");…… fclose(fp);将fp == NULL 写成 fp = NULL
阅读全文
posted @
2012-01-12 11:16
吃吃户
阅读(326)
推荐(0)
sscanf的用法
摘要:1 #include <iostream> // for std::cout 2 #include <utility> // for std::pair 3 #include <algorithm> // for std::for_each 4 #include <vector> 5 using namespace std; 6 7 #include <string.h> 8 9 int main()10 {11 char temp[100] = "/a/b/c/d/e";12 char file[100];13
阅读全文
posted @
2011-11-30 16:54
吃吃户
阅读(346)
推荐(0)
文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换
摘要:转自http://blog.csdn.net/jenghau/article/details/5532265文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换最近在linux下编程常需要对一些文件进行操作。有时不同的条件下,需要将文件指针/句柄(FILE*)、文件描述符(fd)以及文件路径(filepath)进行相互转换,以满足实际的编程需要。现简单的做一下整理。如下。1:文件路径 文件描述符应是唯一的。文件指针(值)不是唯一的,但指向的对象也应该是唯一的。2: FILE*中包含fd的信息,而且还包含IO缓冲,所以可以理解为FILE*是对fd的封装,是
阅读全文
posted @
2011-11-11 15:35
吃吃户
阅读(571)
推荐(0)
extern C的使用
摘要:每个函数都有一个标识,C语言和C++对函数的标识是不同的。今天在C++程序里面调用GeoIP(用C写的la静态库)里面的ip->as映射函数的时候,直接就可以调用,挺奇怪的,一看h文件里面有 1 #ifndef GEOIP_H 2 #define GEOIP_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <sys/types.h> 9 #if !defined(_WIN32)10 11 ……12 13 14 GEOIP_API void GeoIP_setup_custom_di
阅读全文
posted @
2011-11-11 11:37
吃吃户
阅读(271)
推荐(0)
查看变量的类型名C++
摘要:1 #include <iostream> 2 using namespace std; 3 4 #include <string.h> 5 6 7 8 int main() 9 {10 cout << typeid(3u).name() << endl;11 12 return 0;13 }打印unsigned intname返回的是char *类型
阅读全文
posted @
2011-10-21 21:05
吃吃户
阅读(404)
推荐(0)
C语言修改文件中一部分内容
摘要:转自:http://www.xxlinux.com/linux/article/development/soft/20070601/8652.html格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名 意义"C:\\TC\\qwe.txt" 文件C:\TC\qwe.txt"qwe.txt" 和程序在同一目录下的qwe.txt文件使用方式 意 义“rt” 只读打开一个文本文件,只允许读数据“wt” 只写打开或建立一个文本文件,只允许写数据“at” 追加打开一个文本文件,并在文件末尾写数据“rb” 只读打开一个二进制文件,只允许读数据“wb..
阅读全文
posted @
2011-10-13 14:17
吃吃户
阅读(22381)
推荐(1)
全排列递归算法
摘要:1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 void Swap(int * a, int m, int n) 6 { 7 int temp = a[m]; 8 a[m] = a[n]; 9 a[n] = temp;10 }11 12 void Input(int *a, int n)13 {14 int i;15 for (i = 0; i < n; ++i) {16 a[i] = i;17 }18 }19 void Output(i...
阅读全文
posted @
2011-10-08 23:24
吃吃户
阅读(256)
推荐(0)
全排列的非递归算法
摘要:1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 #define NumOfElem(a) (sizeof(a)/sizeof(a[0])) 6 7 void Swap(int * a, int m, int n) 8 { 9 int temp = a[m];10 a[m] = a[n];11 a[n] = temp;12 }13 14 void Input(int *a, int n)15 {16 int i = 0;17 for (i = 0; i < n;...
阅读全文
posted @
2011-10-08 22:13
吃吃户
阅读(387)
推荐(0)
C #与##的使用
摘要:1 #include <iostream> 2 using namespace std; 3 4 #define STR(s) #s // #的用法,转化为字符串 5 #define CONCAT(s1, s2) s1##s2 // ##连接后,作为变量名 6 7 #define MAX(a, b)\ 8 {if((a)>(b))\ 9 return (a);\10 else\11 return (b);\12 ...
阅读全文
posted @
2011-10-08 12:59
吃吃户
阅读(347)
推荐(0)
C++读取配置文件
摘要:头文件:get_config.h/***************************************************************************** 作者: jasitzhang(张涛)* 日期: 2011-10-2* 目的: 读取配置文件的信息,以map的形式存入* 要求: 配置文件的格式,以#作为行注释,配置的形式是key = value,中间可有空格,也可没有空格*****************************************************************************/#ifn...
阅读全文
posted @
2011-10-02 12:36
吃吃户
阅读(30436)
推荐(4)
使用ifstream和getline读取文件内容[c++](转载)
摘要:假设有一个叫data.txt的文件, 它包含以下内容:Fry:OneJilliondollars.[Everyonegasps.]Auctioneer:Sir,that'snotanumber.数据读取,测试。以下就是基于 data.txt 的数据读取操作:#include<iostream>#include<fstream>#include<string>usingnamespacestd;//输出空行voidOutPutAnEmptyLine(){cout<<"\n";}//读取方式:逐词读取,词之间用空格区分//
阅读全文
posted @
2011-10-02 10:51
吃吃户
阅读(1593)
推荐(0)
vc中中文字符串的问题
摘要:#include <iostream>using namespace std;#include <windows.h>#include <AtlBase.h>#include <AtlConv.h>int main(){ const char from[100] = "F:\\桌面\\test\\新建文本文档.txt"; char to[100] = "D:\\test.txt"; USES_CONVERSION; LPCWSTR pFrom = A2CW(from); LPCWSTR pTo = A2CW
阅读全文
posted @
2011-09-10 18:45
吃吃户
阅读(398)
推荐(0)