volatile 剖析
摘要:就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 volatile 强调读同步(优化器在用到这个变量时必须每次都小心地重新读取这个变量的值)VS 而synchronized 强调读写同步 一个定义...
阅读全文
posted @
2010-11-12 10:43
人间奇迹
阅读(255)
推荐(0) 编辑
VC 编译开关参数大全
摘要:vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关 VC 编译命令开关 编译开关 功能------------------------------------------------------------------------------------------- /C...
阅读全文
posted @
2010-11-12 10:33
人间奇迹
阅读(2538)
推荐(0) 编辑
Debug 版本 vs Release版本
摘要:一、C Run-time Library Win32程序(使用Windows标准库),如果是 /MD 编译的程序,那么使用Depends.exe会发现其中需要 USER32.DLL、KERNEL32.DLL、GDI32.DLL、MSVCR80.DLL 等文件支持。像前3个DLL文件是Windows系统自带的,我们不用去考虑它(除非你在程序中使用的API,windows版本不支持)。 MSVCR80.DLL 需要注意一下的, 如果一个程序,不想再放一个 MSVCR80.DLL 文件在安装包中,可用 /MT 编译程序(静态连接)。这时就不需要这个DLL文件了.(如果有多个程序模块,还是把 M
阅读全文
posted @
2010-11-11 19:33
人间奇迹
阅读(3796)
推荐(1) 编辑
程序的内存分配----变量在可执行文件中的内存区分配
摘要:一、 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分:程序代码区(.text) — 存放函数体的二进制代码 文字常量区(.rodata) — 常量字符串就是放在这里的, 程序结束后由系统释放。全局区(静态区)(static)— 全局变量 和 静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域...
阅读全文
posted @
2010-11-10 12:33
人间奇迹
阅读(1939)
推荐(0) 编辑