2013年5月19日

摘要: 问题 最近在学习函数调用过程时碰到了如下问题: 代码块(中间花括号)中定义的局部变量a在栈中是何时建立,何时销毁的? 1 #include <stdio.h> 2 3 int main(int argc, char *argv[]) 4 { 5 int a = 5; 6 int *p = NULL; 7 { 8 int a = 11; 9 p = &a;10 }11 /* printf("%d\n",a); */12 printf("%d\n",*p);13 return 0;14 }分析 以上... 阅读全文
posted @ 2013-05-19 23:52 浙滨 阅读(1009) 评论(0) 推荐(0)

2013年5月4日

摘要: 对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连 续的,再加上循环程序段和子程序段要重复执行多次。Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连 续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部 阅读全文
posted @ 2013-05-04 16:35 浙滨 阅读(172) 评论(0) 推荐(0)

2013年5月2日

摘要: 转自:http://blog.chinaunix.net/uid-20255196-id-1712866.html无意中发现,gcc的函数调用可以在没有在main()函数之前声明就可以使用。 1 main() 2 { 3 func1(); 4 } 5 6 func1() 7 { 8 func2(); 9 }10 11 func2()12 {13 ;14 }像这种函数调用是可以在gcc下编译通过的,也就是说,不声明就可以使用。各个函数放在文件里,main.c中不放它们的声明结果也是可以通过的 ------还有几个问题没弄明白:05.09.06同一个文件中可以包含几个函... 阅读全文
posted @ 2013-05-02 10:45 浙滨 阅读(357) 评论(0) 推荐(0)

导航