全部博文(1293)
发布时间:2013-02-02 10:41:47
一、对变量名的一点思考 变量名不占用空间。 变量名是一个标识符,是用来指代一块内存区域。变量名存在编译器专门开辟的符号表中,如下图 实质上,变量名只存在代码汇编之前的阶段,因为进入汇编代码,操作的都是地址,不存在任何名称了。 二、获取导出表的过程 获取程序的符号表的过程, .........【阅读全文】
发布时间:2016-02-26 10:20:40
一组并发线程运行在一个进程的上下文中,每个线程都有它自己独立的线程上下文,例如:栈、程序计数器、线程ID、条件码等,每个线程和其它的线程一起共享除此之外的进程上下文的剩余部分,包括整个用户的虚拟地址空间,当然也共享同样的打开的文件的集合。,这里有一点要特别注意,就是寄存器是从不共享的,而虚拟存储器总是共享的。有了共享就要防止在对共享变量进行操作的过程中得到一个不可知的值,在Linux内核中有个原子类型与原子操作这么个概念,因为用户态下没有这么一个原子操作存在,那么在我们用户态下就需要要对操作这个共享变量的线程进行同步。为什么要进行同步呢?因为假设我们在一个程序中有一个全局变量cnt,初始值为0......【阅读全文】
发布时间:2015-05-08 15:30:53
#include int main() { int a=3; int b=5; printf(" a&b = %d\n",a&b); getchar(); return 0; } 0000 0011 & 0000 0101 -------- 0000 0001 高七位全部变0,低0位为1. 故.........【阅读全文】
发布时间:2015-03-28 16:42:02
实践证明,C中的strlen和sprintf都可以取得字符串(数组)的长度。sprintf的主要功能还是把格式化的数据写入某个字符串中,获取该字符串长度只是它的附加功能罢了。 #include #include int main() { char bufsend[1024]; memset(&bufsend,0,sizeo.........【阅读全文】