07. C++
文章平均质量分 50
ExcaliburXK
这个作者很懒,什么都没留下…
展开
-
[07. C++]文章目录
常用关键字 const关键字 static关键字 extern关键字 struct关键字在C和C++中使用时的一点区别 goto的一个典型应用场景I/O I/O流使用小细节未分类 内存对齐 成员函数的地址原创 2012-04-22 12:47:48 · 543 阅读 · 0 评论 -
C++ : const关键字
const关键字并不是表示常量,而是表示“内容不可修改”。const修饰的变量并不一定是值保持不变的,可能由编译器检测不到的外部条件改变,const可以和volatile同时修饰一个变量。 const与#define相比较是面试中常见的问题。#define定义常量,由预处理器进行字符替换,编译器不进行类型安全检查。const定义的是一个值恒定的变量,编译器会对其进行类型安全检查。原创 2012-03-20 19:16:20 · 569 阅读 · 0 评论 -
C++ : static关键字
自C语言以来,static就是个容易让人迷惑的关键字,因为根据使用场合的不同,它表示两种差别甚远的意义。 《C和指针》一书给出精要的解释:用于函数定义,或者用于代码块之外的变量声明 表示修改标识符的链接属性,从external改为internal。但标识符的存储类型和作用域不受影响。用这种方式声明的函数或变量只能在声明它们的源文件中访问。当sta原创 2012-02-29 15:51:55 · 564 阅读 · 0 评论 -
goto的一个典型应用场景
最近写一个遗传算法,采用部分匹配交叉策略,假设两条染色体是:X : 2 3 4 5 6 7 8 1Y : 1 2 3 4 5 6 7 8交叉点i = 2, j = 6, 即中间的4个基因进行交换X : 2 3 3 4 5 6 8 1Y : 1 2 4 5 6 7 7 8这样将产生重复基因,所以需要对交叉片段之外的基因按原创 2012-04-20 21:18:07 · 1188 阅读 · 0 评论 -
struct关键字在C和C++中使用时的一点区别
很多同学在初学socket编程的时候,编译书上的第一个例子程序都会遇到这样一个问题,明明头文件都包含了,为什么编译总是报错:'sockaddr_in' undeclared'sockaddr' undeclared. 原因如下: 如果用gcc client.c -o client -Wall编译,则 struct sockadd原创 2012-02-02 12:44:18 · 1567 阅读 · 0 评论 -
I/O流使用小细节
在使用标准库提供的I/O流时,我们常常通过判断文件流状态来进行循环控制。例如ifstream ifStr("MyFile.txt"); // 要使用绝对路径string str;if(ifStr >> str){ cout }将MyFile.txt中内容逐个单词地输出。 但是像下面这样写就是错的:if原创 2012-04-19 12:58:21 · 732 阅读 · 0 评论 -
C++ : 成员函数的地址
(知识总结计划中……)原创 2012-03-26 20:43:38 · 665 阅读 · 0 评论 -
内存对齐
执行内存分配的操作是在操作系统内核中,但一般认为内存对齐是编译器的事。因为操作系统和编译器都有默认的对齐系数,但是可以通过编译器来进行修改。比如cl.exe可以通过#pragma pack(n) // n = 1, 2 , 4, 8, 16来指定对齐系数。 需要内存对齐的原因,主要是从性能方面考虑,数据结构(尤其是栈)需要在自然边界上对齐原创 2012-03-09 16:25:12 · 633 阅读 · 0 评论 -
extern关键字
extern关键字最原始的用处是变量声明,这里不细说。 //xk> 在C++程序中调用C编译器编译的函数 我们知道,在C++程序中可以直接调用C语言写的函数,不仅在语法上C++编译器基本可以编译C程序,而且C++程序还可以调用C编译器编译好了的函数,不过要加上extern "C". 因为C++支持函数重载,这就造成C++编译器和C编译器原创 2012-07-02 14:56:13 · 770 阅读 · 0 评论