- 博客(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 162
原创 编程范式,14/11/18
1 channelingint 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 156
原创 编程范式 ,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 232
原创 编程范式,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 171
原创 编程范式,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 212
原创 编程范式,函数汇编过程 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 183
原创 编程范式,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 operationR3 = R...
2018-11-06 21:59:51 219
原创 编程范式,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 147
原创 编程范式,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 209
原创 编程范式,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 200
原创 编程范式,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 162
原创 程序内存分配
1 栈区(stack):与数据结构中的栈相似,由编译器自动分配最后自动释放。主要用于储存如下变量:函数的参数值,局部变量值,类似于栈,在内存上显示是地址连续。2堆区(heap): 这是由程序员申请后分配的地址,不主动释放,可能会有OS回收。3 全局和静态区:分配内存时类似于链表,内存的地址不连续。全局变量和静态变量存一起,未初始化的放一起。4 文字常量区。5 程序代码区。引出的视频中字符...
2018-10-31 22:43:52 129
原创 斯坦福编程范笔记,day10.30.18
1 一个线性查找函数的泛型实现example1:int lsearch (int key, int array[], int size){for (int i =0; i&amp;amp;amp;lt; size; i++){if (array[i] == key){return i;}}return -1;}相应的泛型实现:void* lsearch ( void* key, void* b...
2018-10-30 21:23:03 170
原创 斯坦福编程笔记,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 218
原创 斯坦福编程笔记,day10.28.18
#斯坦福公开课笔记,day10.28.181 C语言中数据类型在内存的存储方式bool 1bytechar 1byteshort 2byteint 4bytelong 4bytedouble 8byte2 补码的基本原理:最高位代表符号位,为了实现加法运算的简便性,相反数相加为0的操作0x00001111+0x10001111...
2018-10-28 23:02:33 218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人