随笔分类 - C Programming
摘要:Test Driven DevelopmentWhen you code, alternate these activities:add a test, get it to fail, and write code to pass the test (DoSimpleThings,CodeUnitTestFirst)remove duplication (OnceAndOnlyOnce,DontRepeatYourself,ThreeStrikesAndYouAutomate)This inner loop pumps the outer loops ofExtremeProgramming-
阅读全文
摘要:在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space),在32位模式下它总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址被使能,那么它就会作用于这台机器上运行的所有软件,包括内核本身。因此一部分虚拟地址必须保留给内核使用: 这并不意味着内核使用了那么多的物理内存,仅表示它可支配这么大的地址空间,可根据内核需要,将其映射到物理内存。内核空间在页表中拥有较高的特权级(ring 2
阅读全文
摘要:C程序一般分为1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.初始化过的数据:在程序运行值初已经对变量进行初始化的3.未初始化过的数据:在程序运行初未对变量进行初始化的数据4.堆(stack):存储局部,临时变量,在程序块开始时自动分配内存,结束时自动释放内存.存储函数的返回指针.5.栈(heap):存储动态内存分配,需要程序员手工分配,手工释放.附程序分布图:#include <stdio.h>#include <malloc.h>voidprint(char*,int);main(){char*s1="abcde"
阅读全文
摘要:学习linux下的c/c++编程1,先有linux环境搭minGW和cygwin都有点麻烦,最最简单的办法还是装个真正的linux,用虚拟机也好,在网络上的另一台机器也好。这样不仅快,而且你有了真正的环境。2.会C/C++语言(估计你会的)3.入门阶段熟悉gcc命令行,最基本的参数,如,-g,-W,-O,-o,-c 建议看man gcc(很大找想要的)4.编译第一个helloworld程序: 基本命令 gcc helloworld.c -o helloworld前面四个阶段的时间估计只要1-2天就可以了5.提高阶段,你需要开始了解,并熟悉ld,gdb,编写基本的Makefile,了解make.
阅读全文
浙公网安备 33010602011771号