上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页
摘要: 背景:在C&C++中一、inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。表达式形式的宏定义一例:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢:1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。2. 这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器 阅读全文
posted @ 2013-09-13 10:50 CPYER 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 这是没有引入任何头文件时,如果使用"NULL",编译器会报错:没有定义NULL。此时可用下面代码定义。#undef NULL //#undef 是在后面取消以前定义的宏定义#if defined(__cplusplus) //区别于#ifdef,#if defined的意思是如果在编译这几行之前,已经定义过(&& || && ||)等标识符#define NULL 0 //#define是预处理宏定义命令#else#define NULL ((void *)0)//NULL ((void*)0) C中的“标准”写法,NULL被替换为一个voi 阅读全文
posted @ 2013-09-13 09:23 CPYER 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 常用的安全CRT函数 安全CRT(C Runtime Library = C运行时间库)函数,是微软公司对C/C++语言的扩展。它在原来函数名后添加了“_s”后缀;一般返回出错代码;并将原来的函数返回值,作为一个参数,添加到函数输入参数列表的最后;对带缓冲区参数的函数,还添加了表示缓冲区大小的输入参数,以防止内存溢出。在VC2005中,如果不使用这些安全性函数,编译器会报告警告性错误。 下面是若干常用的安全CRT函数:char *gets_s( char *buffer, size_t sizeInCharacters); // wchar_t *_getws_s( wchar_t *buff 阅读全文
posted @ 2013-09-12 10:46 CPYER 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 1.vector容器简介:vector向量容器是一种随机访问的数组类型,它提供了对数组元素的快速访问、随机访问,以及在序列尾部快速、随机地插入和删除操作。它类似于数据结构中的队列、数组和堆栈等概念。2.vector容器的定义2.1 头文件#include2.2 命名空间using namespace std;2.3 举例:vector m_vector;//定义一个string类型的向量容器vector m_vector;//定义一个int类型的向量容器vector m_vector(10);//创建了具有10个元素的容器,每个元素初始值为0vector m_vector(10,5);//创建 阅读全文
posted @ 2013-09-12 10:14 CPYER 阅读(980) 评论(0) 推荐(1) 编辑
摘要: //这段代码运行有可能不报错。static char a[10]; for (int i=0;i<90;i++){ a[i]=i;}1、为了提高运行效率,不检查数组下表越界,程序就可以跑得快。因为C语言并不是一个快速开发语言,它要求开发人员保证所有逻辑的正确性。所以至少到目前为止,C语言是所有高级语言中速度最快,效率最高的。几乎所有对性能有苛刻要求的场合都使用C语言。2、不检查下标是为了给程序员更大的空间,也为指针操作带来更多的方便。如果有这个检查的话指针的功能将会大大被削弱,C的数组标识符,里面并没有包含该数组长度的信息,只包含地址信息,所以语言本身无法检查,只能通过编译器检查,而早期 阅读全文
posted @ 2013-09-11 17:32 CPYER 阅读(459) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页