C++技术问题总结-第1篇

进程中内存的布局

参见:http://patmusing.blog.163.com/blog/static/135834960201001512358686/

常量区只读不可写。

静态区可读写。

示例

//所有代码,在Code segment
//在Global data segment,const只是个语法标识,不放Constant segment
const double PI = 3.14159;

class Circle
{
  public:
  double calculate_area(double radius) {
    //输入参数、局部变量,在Stack segment
    return PI*radius*radius;
  }
};

void main(){
  //"hellor world!"属于文字常量,在Constant segment
  char* str="hellor world!";
  //p1动态分配,在Heap segment
  Circle* p1=new Circle();
  double area = p1->calculate_area();
  delete p1;
  p1 = NULL;
}

C++技术问题总结-第1篇

时间: 2024-11-12 22:08:16

C++技术问题总结-第1篇的相关文章

JAVA技术专题综述之线程篇(1)

本文详细介绍JAVA技术专题综述之线程篇 编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:synchronized 本文将对以上内容进行讲解. 一:run()和start() 示例1: public cla ThreadTest extends Thread{public void run(){for(int i=0;i<10;i++){Syste

嵌入式系统 Boot Loader 技术内幕----仅此一篇读懂bootloader

嵌入式系统 Boot Loader 技术内幕----仅此一篇读懂bootloader 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念.软件设计的主要任务以及结构框架等内容. 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分. 2. Li

C++技术问题总结-第0篇

从今天开始,对C++常用技术做个总结. 参考书籍:<C++Primer>.<C++对象模型>.<设计模式>.<Windows核心编程>.<STL解密>. 1. static_cast等四个cast的具体意义 C++类型转换:隐式转换和显式转换. 显式转换:static_cast.dynamic_cast.reinterpret_cast.const_cast. 1.1. static_cast 用法:static_cast<type-id&

[转]有哪些值得关注的技术博客(Java篇)

有哪些值得关注的技术博客(Java篇) 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1.总结知识点相对比较全面 2.一般来说讲解知识点通俗易懂 3.路线比较清晰,不会有太多的冗余内容. 这样一来,对于自学的朋友来说,一些专业的博客不但大量的缩减了你得学习时间.提高了学习效率.更重要的是这些博客能培养你对编程的兴趣. 于是,这几期文章会主要推荐一些技术博客,目前计划打算主要分为: (已完) 

Java图像处理最快技术:ImageJ 学习第一篇

ImageJ是世界上最快的纯Java的图像处理程序.它可以过滤一个2048x2048的图像在0.1秒内(*).这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件.500多插件可用. 数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩. 文件格式:读写所有支持的数据类型为TIFF(非压缩)或原始数据.打开和保存GIF,JPEG,BMP,PNG,PGM,FITS和ASCII.打开DICOM.使用URL打开的TIFF.GIF文件.J

[原创] 软件自动化测试技术(1) - 准备篇

软件自动化测试技术(1) - 准备篇 想清楚 1. 为什么要做自动化测试? 有前途? 有钱途? 大家都在做? 有危机感? 过去做的很没意思,想换换? 2. 我的兴趣点在哪里? 对当前工作没有任何兴趣? 对点鼠标感兴趣? 对测试手工感兴趣? 对写代码感兴趣? 对各种新的技术感兴趣? 3. 我适合做自动化吗? 我不懂技术? 我对学习工具感到恐惧? 我觉得手工的系统/验收测试能发现更多的缺陷,而这正是我的成就感所在? 4. 做了自动化我能怎么样? 有钱了? 高大上了? 可以跳槽去Google.Face

C++技术问题总结-第2篇 进程通信

进程通信的方法 进程通信基本方法有如下几种. 1.消息传递机制. 2.共享内存. 3.管道和邮槽. 4.剪贴板. 5.Socket通信. 1.消息传递机制 使用WM_COPYDATA实现进程间的传递数据. 函数原型 LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam) 参数 hWnd:其窗口程序将接收消息的窗口的句柄.如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非

C++技术问题总结-第3篇 线程同步

线程同步的方法 线程同步有多种方法. 用户模式下的线程同步:关键段(critcal section). 内核模式下的线程同步:事件.计时器.信号量.互斥量. 1.关键段 用户模式下的同步,主要API如下. InitializeCriticalSection.DeleteCriticalSection.EnterCriticalSection.LeaveCriticalSection. 2.事件 常用于:一个线程初始化工作,然后再触发另一个线程让它工作.主要API如下. CreateEvent.S

C++技术问题总结-第4篇 TCP与UDP

TCP.UDP各自client.server端描述 TCP.UDP位于传输层,基于IP协议. 1.TCP TCP:Transmission Control Protocal 传输控制协议. 服务器与客户端执行流程如下. API说明. 创建套接字:SOCKET localSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 绑定:bind(localSocket, (SOCKADDR*)&servAddr, sizeof(SOCKADDR)); 监

C++技术问题总结-第5篇 TCP三次握手

TCP三次握手 TCP提供可靠的连接服务,采用三次握手确认建立一个连接. TCP标志位有6种. SYN:synchronous建立联机. ACK:acknowledgment确认. PSH:push传送. FIN:finish结束. RST:reset重置. URG:urgent紧急. 三次握手主要依靠的是SYN和ACK标志位. 握手详细流程图如下. 简化步骤可描述为. A发送syn=j到B. B检测后,发送ack=j+1,syn=k到A. A检测后,发送ack=k+1到B.