zoukankan      html  css  js  c++  java
  • iOS堆栈-内存-代码在据算机中的运行

      其实作程序不管是那行,学什么语言最终的目的是和就算机打交道的,我们写的程序计算机是怎么处理的呢???

      计算机运行我们的程序无非就是吧磁盘-内存-cpu三者结合起来

      我们写一个程序代码肯定是在此盘中存着呢,但我们编译的时候是把我们写的代码按照一定的规则合并成一个文件(。exe)也就是我们平常见的安装包,当我们运行.exe文件时,这时才是我们的程序执行 ,

    //注意:大家千万不要把些程序当成程序在代码中的运行,一个程序要分为,编写,编译,执行  ,每个程序都要经过这三个过程

      编写:就是我们写的代码

      编译:是把我们写的代码按照一定的规则合并成一个文件(。exe)

      执行:执行时候 系统献给我们的程序分派一定的内存,这时候的内存叫做(栈)然后程序开始找到程序的入口main(),找到后开始逐行逐句的执行(每行代码都站内存),   

      堆:在main()函数中我们遇到“alloc”(在其他语言中好多是new关键字)说明我们生成了一个堆;

      //栈是有限的  而堆是无限的

    #import <Foundation/Foundation.h>

    @interface fist: NSObject

    {

        int a;

        int b;

    }

    @propertyint a,b;

    -(void)Print;

    @end

     

     

    @implementation fist

    @synthesize a,b;

    -(void)Print

    {

        NSLog(@"a==%db==%d",a,b);

    }

    @end

     

    int main(int argc, const char * argv[])//栈的出现

    {

        @autoreleasepool {

            // insert code here...

            fist *one;//  定义了一个类的指针(在32为的系统中只占4个字节的内存)

            one=[fist alloc];//为one声明内存  (这个时候我们就有“堆“了)

            one=[one init]; 初始化类(其实init是一个初始化函数,在这里不用细究起是什么)

        int a=0;//在这里我们有回到了栈里面

        }

        return 0;

    }

     
  • 相关阅读:
    [百度百科]PCI-E的速度
    Oracle 高版本往低版本备份恢复的方法
    PHP-Java-Bridge使用笔记
    Delphi获取其它进程窗口句柄的3种方法
    二层交换机当三层交换机,使用单臂路由实现二层交换机上的VLAN互通
    Python下科学计算包numpy和SciPy的安装【原创】
    OpenGL: 你不知道的左右手坐标系
    Delphi XE7的安卓程序如何调用JAVA的JAR,使用JAVA的类?
    科普:UTF-8 GBK UTF8 GB2312 之间的区别和关系
    phpmyadmin #1045 #2002 无法登录 MySQL 服务器的解决方
  • 原文地址:https://www.cnblogs.com/flyingdreaming/p/memory.html
Copyright © 2011-2022 走看看