自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 编程范式,15/11/18

1有关线程的卖票程序: 10个代理,总共150张票,如何同时卖,最后卖完150张票 (1)原始程序 int main() { int numAgents = 10; int numTickets =150; for (int agent =1 ; agent <= numAgents; agent++) { SellTickets(agent, numTickets /...

2018-11-15 21:53:36 177

原创 编程范式,14/11/18

1 channeling int main() { DeclareAndInitialArray(); printfArray(); } void DeclareAndInitialArray() { int array[100]; int i; for (i =0; i<100;i++) { array[i] =i ; } } void printfArray() { int arr...

2018-11-14 19:51:12 168

原创 编程范式 ,11/11/18

1 GCC编译过程中的一些有意思的问题与过程 以下代码: #include <stdlib.h> #include <stdio.h> #assert <assert.h> int main ( int argc, char * argv) { void * memory = malloc(400); assert (memory != NULL); p...

2018-11-11 21:06:29 243

原创 编程范式,10/11/18

1 宏定义 #define NthElemAddr (base ,elemSize, index) \ ( (char *) base + index * elemSize ) 以上实现了字节段的偏移 2 assert宏在 assert.h #ifdef NDEBUG #define assert(cond) (void)0 #else assert(con...

2018-11-10 21:02:16 183

原创 编程范式,8/11/18

1 复习了汇编部分,介绍C++中函数参数为引用时的汇编过程,其和pure C其实是相同的 2 C++中的this 指针,在函数编译时的作用: class blinky { public : int dunkt (int x, int y); char * mingky(int *z){ int w = *z; return slinky+dunky(wingky , winky ); p...

2018-11-08 21:44:51 227

原创 编程范式,函数汇编过程 7/11/18

1 函数声明为: void foo(int bar, int *baz) { char snik[4]; short why; why = (short) [snik+2]; *why =50; } 编译时:一块纪录里显示为如下(内存由高到低分布)):函数的参数内存开辟,调用函数信息,内部局部变量分配 int main( int argc,char**argv) { int i = 4; foo ...

2018-11-07 21:38:55 199

原创 编程范式,6/11/2018

1:伪代码形式的汇编过程 (所有的寄存器指令过程都是4Byte过程) int i; int j; i =10;//(1) j=i+1;//(2) j++;//(3) 第三行开始汇编过程: (1) M[R1+4] =10; //store operation,M代表所有RAM的名字,R1为寄存器映射的内存栈活动快基地址 (2) R2= M[R1+4]; //load operation R3 = R...

2018-11-06 21:59:51 230

原创 编程范式,5/11/18

1关于堆内存管理的细节 使用malloc函数使,返回的一段内存地址大小实际大于申请的大小,在返回的指针首地址:addr,向前偏移四个Byte或者8个Byte的内存地址,存储着申请的内存大小。 对于如下操作: int arr = malloc(100sizeof(int)); free(arr+60); 调用free函数,在找到偏移60个之后,会先前寻找4个或8个Byte的内存,解释为内存长度,并将...

2018-11-05 22:22:17 156

原创 编程范式,4/11/18

1: 有关栈清除的更新 typedef struct{ void* elems; int elemSize; int loglength; int alloclength; void(*freefn) (void*); }stack; StackNew(...

2018-11-04 16:45:34 222

原创 编程范式,3/11/18

栈的泛型(2),纯C实现 stack.h typedef struct{ void* elems; int elemSize; int loglength; int alloclength; }stack; void StackNew...

2018-11-03 23:19:49 211

原创 编程范式,01.11.18

1线性查找函数的字符串泛型例程 以下演示了在指针数组里查找字符串的操作 char *note[]={"Ab", "F#", "B", "Gb", "b"};//定义了指向5个字符串常量的指针数组 char* favorite = "Eb"; char **found = lsearch(&favorite, notes, 5, sizeof (char*), StrCmp)

2018-11-01 22:19:00 171

原创 程序内存分配

1 栈区(stack):与数据结构中的栈相似,由编译器自动分配最后自动释放。主要用于储存如下变量:函数的参数值,局部变量值,类似于栈,在内存上显示是地址连续。 2堆区(heap): 这是由程序员申请后分配的地址,不主动释放,可能会有OS回收。 3 全局和静态区:分配内存时类似于链表,内存的地址不连续。全局变量和静态变量存一起,未初始化的放一起。 4 文字常量区。 5 程序代码区。 引出的视频中字符...

2018-10-31 22:43:52 137

原创 斯坦福编程范笔记,day10.30.18

1 一个线性查找函数的泛型实现 example1: int lsearch (int key, int array[], int size) { for (int i =0; i< size; i++) { if (array[i] == key) { return i; } } return -1; } 相应的泛型实现: void* lsearch ( void* key, void* b...

2018-10-30 21:23:03 181

原创 斯坦福编程笔记,day10.29.18

1 泛型的基本引入与纯C实现 void swap( int* ap, int * bp) { int temp =*ap; *ap =*bp; *bp=temp; } 如何将上述函数通用化,满足不同数据类型,本质上是内存的互换 一种理想的错误答案: void swap( void *vp1, void *vp2) { void temp =*vp1; *vp1 = *vp2; *vp2 =temp...

2018-10-29 22:18:18 236

原创 斯坦福编程笔记,day10.28.18

#斯坦福公开课笔记,day10.28.18 1 C语言中数据类型在内存的存储方式 bool 1byte char 1byte short 2byte int 4byte long 4byte double 8byte 2 补码的基本原理:最高位代表符号位,为了实现加法运算的简便性,相反数相加为0的操作 0x00001111 +0x10001111...

2018-10-28 23:02:33 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除