【发布时间】:2012-03-15 12:22:25
【问题描述】:
任何编程语言(C++、C#、Java、C...)中声明函数的最终内存地址是相对的还是绝对的? (我不是问机器码语言的寻址方式是相对还是绝对)
(我会说这是相对的,但我需要专家来评论) 如果是相对的,这意味着无论我们在哪里调用函数,都会根据程序计数器的位置将函数复制并放入堆栈。因此,两个线程同时调用同一个函数,如果它们不共享同一个变量,它们不会相互影响。
如果是绝对的,这意味着两个线程调用同一个函数,它们会进入同一个地址!!(是静态还是非静态函数)另外,每次我们创建一个类对象,一定的大小每个对象的可用于存储方法(函数)。那么它会让一个物体的尺寸变得非常大!
【问题讨论】:
标签: c++ multithreading function callstack