
C/C++
文章平均质量分 70
无为_
别拿豆包不当干粮
展开
-
Struct和Class的区别
转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和c转载 2014-01-26 09:22:47 · 969 阅读 · 0 评论 -
共享内存
共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:共享内存的实现分为两个步骤:一、 创建共享内存,使用shmget函数。二、 映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。转载 2014-10-21 12:49:16 · 841 阅读 · 0 评论 -
struct和union的区别
今天读到NeHe第48章的源程序,本想学习一下轨迹球的用法,无意中发现里面用到 union 。当初学习C语言时并没有特别注意 union 的用法,也不知道与 struc t相比有何不同。经过网上的一番搜索,现在总算是恍然大悟,所以就小结一下。如有错误之处,敬请指正。( struct 和 union 的结构定义形式没有多大差别,只要不是初学者,相信大家不会在这方面存在什么问题。)转载 2014-06-20 15:31:19 · 1373 阅读 · 0 评论 -
C++编译链接过程
GCC的编译过程总体来说,C/C++源代码要经过:预处理、编译、汇编和链接,四步才能变成相应平台下的可执行文件。File: hw.c[cpp] view plaincopy#include int main(int argc, char *argv[]) { printf("Hello转载 2014-07-10 10:10:17 · 663 阅读 · 0 评论 -
java运行速度比C++慢的原因
1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作.而C++编译的时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍.即使采用just-in-time compiling (读取类文件字节后,编译成本地机器码)技术,速度也要比C++慢好多. 2)java程序有要从网络上加载类字节,然转载 2014-06-16 13:06:32 · 2111 阅读 · 0 评论 -
C/C++ IO总结
正如Effective C++所讲:C++就是一个语言联邦。他是一个多面手。对于同一个问题往往有很多种解决办法,具体采用那种办法就交给程序员去选择。因此本文对C++文件IO的整理就得分为两个面:C方式,C++方式。程序员可根据自己所在团队选择合适且统一的IO方式。 一. 基础知识1.1文件类型:ASCII文件和二进制文件首先我不保证文件类型只有这两种。但理解这两种文件对学习文件IO转载 2014-06-06 15:57:05 · 799 阅读 · 0 评论 -
c 文件复制(字节流)
#include #include #define BUFSIZE 1024int main(int argc,char *argv[]){ FILE *source,*des; if(argc < 3) { fprintf(stderr,"Error Usage: no FILEanme input !\n"); exit(1);原创 2014-06-06 18:08:34 · 1306 阅读 · 0 评论 -
C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数
C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数 ---------------------------------------------------- | 问题描述一:(分析scanf()和getchar()读取字符) | ----------------------------------------------------转载 2014-06-26 11:02:20 · 842 阅读 · 0 评论 -
Struct和Class的区别
转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和c转载 2014-04-29 10:52:33 · 865 阅读 · 0 评论 -
extern C的作用详解
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 这个功能十分有转载 2014-04-24 10:19:45 · 677 阅读 · 0 评论 -
C语言中的static 详细分析
google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,转载 2014-04-29 14:11:51 · 746 阅读 · 0 评论 -
C++虚函数和纯虚函数的区别
1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类之中,被继承的子类重载转载 2014-04-29 14:04:03 · 1368 阅读 · 0 评论 -
【C/C++语法外功】传值&传引用&传指针
相关概念c++三种传递参数方式传参数的值(称值传递,简称传值),传参数的地址(称地址传递,简称为传址),和引用传递(称为传引用),相应的函数传值调用,传址调用和传引用调用形参、实参 函数定义时参数表中的参数称为形式参数,简称形参;函数调用时参数表中的参数称为实际参数,简称实参。实参和形参之间的数据传递称为形实结合转载 2014-03-13 14:02:29 · 1449 阅读 · 0 评论 -
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”? 首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数转载 2014-02-19 15:27:32 · 1129 阅读 · 0 评论 -
C的|、||、&、&&、异或、~、!运算
位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算符,其余均为双目运算符。 位运算符的优先级从高到低,依次为~、&、^、|, 其中转载 2014-01-28 11:12:43 · 1273 阅读 · 0 评论 -
内存溢出攻击分析
什么是内存溢出?简单的说,内存溢出就是程序向内存写入了比分配更多的空间更多的内容。攻击者据此控制程序执行的路径,冒名执行它的代码。对那些好奇这一切都是如何发生的人,本文试图详细介绍攻击的实现机制并提出一些预防措施。从我们知道的经验来看,大多都听说过这些攻击,但是很少几个真的理解攻击的具体机制,有些人有些模糊的印象,甚至有些人根本不知道越界攻击是什么。还有些人认为这个属于秘密的智慧和技能只有转载 2015-02-02 17:13:43 · 2873 阅读 · 0 评论