gcc编译器局部变量在栈中的内存分配
摘要:
内存分配,根据系统与编译器的不同,差别很大。 之前曾经发现在ubuntu12.04系统gcc 4.63版本编译器,先定义的局部变量在栈中地址低,而后定义的局部变量在栈中地址高,与认知有差别。试了多个系统与编译器,最后发现与linux发行版关系不大,而与gcc的版本有关。在gcc4.4.7版本和4.8.0版本中,栈中的内存地址分配“正常”。 今天又因为一个问题,对这个问题进行了进一步的探索。 试验之后,得到如下的大致结论。 gcc4.47ubuntu12.04环境中,在栈中定义多个变量时: 同类型的,单元素数组按单元素算。从高到低,从元素到数组(数组在低地址)。 不同类型... 阅读全文
posted @ 2013-12-07 23:52 4IT 阅读(1195) 评论(0) 推荐(0)
浙公网安备 33010602011771号