一,单独编译
1)请不要将函数定义或变量声明放到头文件中。
原因:一个头文件中包含一个函数定义,然后其他两个文件(同属于一个程序)包含该头文件,则同一个程序中将包含同一个函数定义。除非函数是内联的(inline),否则将出错。
2)将结构放在头文件中是可以的。因为它们不创建变量。
3)头文件写法: “main.h” 头文件包含在双引号中则编译器首先查找当前的工作目录。
<main.h>包含在尖括号中则在存储标准头文件爱你的主机系统的文件系统中查找
4)源码文件:**.c 不需要#include **.c 因为这样将导致重复声明
5)预处理器编译指令 #ifndef node
#define node 23
#endif
二,存储持续性、作用域和链接性
1)自动存储持续性(函数定义中声明的变量)
静态存储持续性(函数定义外定义的变量和static定义的变量)
动态存储持续性(new操作符分配的变量一直存在,直到delete释放内存)
2)函数的作用域只能是整个类,或整个名称空间。不能是局部的,因为不能在函数中定义函数
3)寄存器变量(频繁使用的变量) register int i; //没有内存地址,不能将地址操作符用于寄存器变量
4)作用域解析操作符 "::"
5)extern 使用实例
file1.c:int count=1;
file2.c:
#include "stdio.h"
extern int count;
int main()
{
printf("coutnt=%d\n",count);
return 0;
}
6)注意:extern 声明的变量不能初始化
7)使用new 运算符 初始化变量的语句一定要 位于函数中,因为只能使用常量表达式来初始化静态存储变量
三,布局new操作符
让程序员指定要使用的位置,程序员可以使用这种特性来设置其内存管理规程或处理需要通过特定地址进行访问的硬件。
注意:要使用布局new操作符,必须添加 #include <new>
例子:
#include <new>
#include <iostream>
using namespace std;
char buff[512];
int main()
{
double *p1,*p2;
p1=new double[5];
p2=new (buff)double[5];
for(int i=0;i<5;i++)
p1[i]=p2[i]=1000+20.0*i;
cout<<"p1 address:"<<p1<<"\nbuff address:"<<(void *)buff<<endl;
cout<<"p2 address:"<<p2<<endl;
return 0;
}
四,名称空间
1)名称空间可以是全局的,也可以位于另一个名称空间中
2)using声明 usding std::cout //将名称添加到局部声明区域
using编译指令 using namespace std;//使名空间中,所有名称可用
3) 例子:
#include <iostream>
namespace jill{
double bucket(double n){return n;}
double fech;
}
int main()
{
using namespace jill;
using std::cout;
using std::endl;
double water=bucket(2);
fech=4;
double fech=5;
cout<<"water:"<<water<<endl;
cout<<"fech:"<<fech<<endl;
cout<<"::fech:"<<jill::fech<<endl;
}
局部的fech 将隐藏 名空间中的fech
分享到:
相关推荐
c++primer第五版第9章课后习题答案
c++primer 第五版第9章 课后习题答案 (下) 从第31题开始
c++primer第五版中文版课后答案(第19章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++ Primer Plus 第9章内存模型和名称空间 new操作符以及名称空间的使用demo
c++primer第五版中文版课后答案(第9章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
vs2013 C++primer5th 15章第9节的例子,Query。编译通过,需要调节的自己调节
c++primer第五版中文版课后答案(第17章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
c++primer第五版中文版课后答案(第12章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
第9章 顺序容器 263 9.1 顺序容器的定义 264 9.1.1 容器元素的初始化 265 9.1.2 容器内元素的类型约束 267 9.2 迭代器和迭代器范围 268 9.2.1 迭代器范围 270 9.2.2 使迭代器失效的容器操作 271 9.3 顺序容器的操作...
c++ primer plus 答案c++ primer plus 答案c++ primer plus 答案c++ primer plus 答案 c++ primer plus 答案
C++Primer课后习题解答(第1~16章完整答案)清晰完整版
C++primer第五版第二章习题答案.pdf
第9 章顺序容器...................................................... 193 练习9.1 练 习9.52 第10章泛型算法..................................................... 234 练习10.1 练 习10.42 目录 ◄ v 第11章...
C++primer 课后答案,习题对帮助记忆、理解很重要。内容高清,全面,带有书签,
C++Primer Plus第六版的课后题练习题
c++primer第五版中文版课后答案(第18章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++Primer中文第三版(C++从入门到精通)第一章的读书笔记,主要是C++程序、预处理器指示符、iostream库等的基础知识点读书笔记。
C++Primer第五版习题答案+详解(完整版) C++Primer第五版习题答案+详解(完整版)
C++ primer Plus的pdf资源