- 博客(43)
- 资源 (3)
- 收藏
- 关注
转载 extern
3.深层揭密extern "C" extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。 被extern "C"限定的函数或变量是extern类型的; extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可
2016-07-22 15:19:12
294
翻译 extern
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数
2016-07-22 15:17:04
356
原创 关于public ,private protect
protect和private成员要使用类的成员函数去访问,不能直接使用其类的对象访问。 stud.num=100;//出错! //假如num是Student类的protected成员,不能直接使用对象访问。但这样就可访问 到私有成员了。class myD{private:int a;public:int Getint() {return a;};};
2016-05-18 10:19:38
836
转载 二分查找
譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即5,由于5 2.寻找{6, 7, 8, 9}的中位数,为7,7>6,则6应该在7左边的数组元素中,那么只剩下6,即找到了。 二分查找算法就是不断将数组进行对半分割,每次拿中间元素和goal进行比较。在有序表R[0..n
2016-05-05 11:05:15
308
原创 数组易错点
int a[10] = {1}, 第一个赋值为1,其余未初始化。并不是把所有都置为1。char* b[] ={"0,45781"}; sizeof(b) = 8,还有个‘\0’会自动计算进来。等同于char* b[] ="0,45781"; char* c[]={‘1’,'2'}; 此写法不安全,因为sizeof(c) = 2,但尾部还有一长串未初始化为结束,常引起越界。应该加上‘
2016-04-26 17:31:07
458
原创 mymemcpy的实现
内存重叠:Dest和Src其中一部分是重叠的。void* my_memcpy(void* dest,const void* src,size_t count){ assert(dest != NULL && src != NULL && count > 0); char* temp_src = (char*)src; char* temp_dest = (char*)dest; i
2016-04-26 13:55:58
294
原创 单链表的创建
typedef struct node //{ char num; struct node *next; }; /******************************************/ struct node*creat(struct node *head)/*返回的是与节点相同类型的指针*/ { struct node *pNew,*pEnd; //p2为尾指针 char ch;
2016-01-28 16:48:02
362
翻译 typedef的常用
typedef int size; 此声明定义了一个 int 的同义字(别名),名字为size。注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个别名。你可以在任何需要 int 的上下文中使用 size:typedef int al;al a = 10;typedef char Line[4];Line b = {'g','h
2016-01-20 14:12:31
261
原创 typedef & #define 的区别,
typedef & #define 的区别,typedef char *pStr;char string[4]="abc";const char *p1=string;const pStr p2=string;p1++;p2++; //错误,应将pStr看作是一个类型像int样的。如果是#define,那就是文本替换,则正确的
2016-01-11 17:13:27
277
原创 C++,C中struct的区别,及class
C中struct的成员只能是变量,不能有函数。C++的struct成员可以有函数。 C++中的成员默认是public的,而class中的成员默认是private的。那么怎样用struct来实现C++中的class呢?,可以通过拥有函数的指针来调用函数实现,例如以下。#include typedef struct ptest{ void (*pFunction)();}S
2016-01-11 11:35:42
254
翻译 struct 大小
遵循以下原则1,结构体内成员按自身按自身长度自对齐自身长度,如char=1,short=2,int=4,double=8,。所谓自对齐,指的是该成员的起始位置的内存地址必须是它自身长度的整数倍。如int只能以0,4,8这类的地址开始。当成员是有结构体时,(这个结构体成员自身对齐的起始位置为其子成员中最长的长度的整数倍。)typedef struct dd{char a;
2016-01-08 16:16:59
455
原创 二分查找
假设是数据是升序排列的int BinarySearch(int arr[],int iLen, int iTarget)// if the array is sorted by low to height.{ if(arr==NULL|| iLen<=0) { return -1; } int iStart=0; int iEnd= iLen -1; while( iSt
2015-09-17 14:49:11
280
原创 最大公约数 辗转相除法
int GongYueShu(int a, int b){ if (a<b) { int temp = a; a = b; b = temp; } int iNextYuShu; int iYuShu = a%b; int ibc = b; while (iYuShu) { iNextYuShu = ibc%iYuShu; if (iNextYuShu)
2015-08-07 13:59:50
332
原创 求子数组最大和
int Array[8] = {1, -2, 3, 10, -4, 7, 2, -5}; int sum = 0; int MaxSum = -100; for (int Index = 0; Index <8; Index ++) { sum =0; for (int iStartIndex = Index, i = Index; iStartIndex <8; iStar
2015-08-06 17:22:39
304
原创 二分查找
int iArraMax[10] = {2, 10,70,163,254,346,438, 726, 817,11}; int iBegain = 0; int iEnd = 9; int iMedium = iBegain + (iEnd-iBegain)/2; int iMaxV = -4; while (iMedium >0 && iMedium <iEnd) { if
2015-08-06 15:20:53
323
翻译 算法
整形数的二进制位1的个数int getCount(int a){ int iCount = 0; while(a) { a=a&(a-1); iCount ++; } return iCount; }
2015-08-06 11:59:43
413
原创 CString int
CString m_strDataLen;int iLen = _tstoi( LPCTSTR(m_strDataLen));
2015-08-05 10:03:11
362
原创 封装、继承、多态
多态性在是通过虚函数(Virtual Function) 实现的。多态性可以简单地概括为“一个接口,多种方法“,程序在运行时才决定调用的函数.多态的作用:封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。也就是说,不论传递过来的究竟是那个类的对象,函数都能够通过同一个接口调用到适应各自对象的实现方法。 最常见的用法就是
2015-07-07 15:29:41
321
转载 引用和指针
简单点说一个是存地址一个是变量别名(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已 int a=1;int &b=a;(2)可以有const指针,但是没有const引用;(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合
2015-07-03 17:41:33
290
原创 struct和union
struct和union的区别union的成员变量是共用一段内存空间的,在同一时刻,只有一个成员变量是有效的(有值)。当对结构体的其中一个成员修改时,对其他成员没影响,但修改联合体时,则会将原来的成员值覆盖
2015-07-03 17:20:23
337
原创 static
一、局部静态变量1. static 记忆性,当第二次调用时,其值是上一次运行后的结果。在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退出时的值. 二、外部静态变量/函数用来表示不能被其它文件访问的全局变量和函数。
2015-07-02 15:55:39
275
原创 extern
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。当extern不与"C"在一起修饰变量或函数时,用来声明全局函数或全局变量。当extern与"C"在一起修饰变量或函数时,c++语言支持函数重载,C不支持。c++提供了C连接交换指定符号“extern C来解决名字匹配问题。
2015-07-02 15:13:55
320
原创 #ifdef #endif
#define hahaa#ifdef hahaacout#endif如果宏定义了hahaa则执行语句。条件编译,防止重复定义(多次包含头文件)。
2015-07-02 15:07:30
377
转载 struct和class的区别
struct是一种数据结构的实现体,class是对象的实现体。struct能包含成员函数、能继承,也能实现多态。1)默认的继承访问权限和缺省权限。struct是public的,class是private的。struct A{char a;};struct B : A{char b;};这个时候B是public继承A的。到底默认是p
2015-07-02 14:16:02
328
原创 const 重温
const它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。int a = 65;int b = 72;int* const p ;修饰指针P,即不能将另一个地址重新赋给P, 让它指向另个地址,也就P不能改变,但可以改变*p的值。int const *p;修饰*p的值,即不能改变*p的值,但可以将另一个地址重新赋给它,让它指向另一个地址。con
2015-07-02 11:32:33
245
原创 联合结构体的大小
typedef union A{ int a[7]; char b; double c;};typedef union B{ int a; int b[9];};typedef union C { double i; int k[5]; char c;}; sizeof(A)=32;sizeof(B)=36;sizeof(C)=24
2015-07-02 09:35:37
904
转载 常用函数源码
Big-Endian转换成Little-Endian如下:#define BigtoLittle16(A) ((((uint16)(A) & 0xff00) >> 8) | \ (((uint16)(A) & 0x00ff) #define
2015-07-01 10:45:11
486
转载 string类
string::string(const char* str){if (str == NULL){m_data = new char[1];m_data[0] = '\0';}else{m_data = new char[strlen(str) +1];strcpy(m_data, str);}}string::string(const
2015-07-01 10:44:18
358
原创 数数
int iCount = 13;int iArray[14] = {0};int iValue = 0;int iPos= 1;while (iCount >1){if (iArray[iPos] == 0){iValue ++;}if (iValue == 3){iValue =0;iArray[iPos] = 1;iCount
2015-07-01 10:43:13
317
转载 单链表2
//求单链表的长度 int length(node *head) { int n=0; node *p; p=head; while(p!=NULL) { p=p->next; n++; } return(n); }
2015-07-01 10:34:27
333
转载 单链表(创建,打印,逆序,合并两个有序的链表)
#includeusing namespace std;const int N=6;typedef int DataType;typedef struct node{ DataType data;struct node* next;}LinkedNode,*LinkList;LinkList CreateList(DataType a[N]){LinkedNode* ListHead=new Li
2015-07-01 10:16:45
813
原创 保留
char* getData(int iYear, int iMonth, int iDay, int inCountDay){char psResult[100]="";if ( iYear 12){return psResult;}int iSumday = 0;int iLeapYear = 0;int month_Data[
2015-06-19 11:49:14
361
翻译 常用
public String intToIp(int i) { // return ((i >> 24 ) & 0xFF ) + "." + // ((i >> 16 ) & 0xFF) + "." + // ((i >> 8 ) & 0xFF) + "." + //
2015-01-23 10:24:32
423
原创 餐饮管理
#import "c:\\Program Files\\Common Files\\System\\ado\\msado15.dll"no
2014-07-31 11:30:17
1241
原创 vc6.0 中classview栏的所有类不见了,该怎么解决?删除.clw,.ncb.....等等,这些网络资源的方法根本不行
vc6.0 中classview栏的所有类不见了,该怎么解决?删除.clw,.ncb.....等等,这些网络资源的方法根本不行
2014-07-30 15:43:17
722
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人