![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程知识
文章平均质量分 76
dingpeng1978
这个作者很懒,什么都没留下…
展开
-
volatile变量的用法(转)
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic v转载 2008-07-08 15:41:00 · 789 阅读 · 0 评论 -
Windows与Solaris互斥与同步机制对比(转)
在Windows和Solaris中都提供进程与线程的互斥与同步机制。Windows提供了互斥对象、信号量对象和事件对象等三种内核同步对象和相应的系统调用 ,用于进程和线程同步。这些同步对象都有一个用户指定的对象名称,不同进程中用同样的对象名称来创建或打开对象,从而获得该对象在本进程的句柄。而Solaris也相应的提供了几个互斥同步对象,互斥锁(Mutex Locks),读写锁(Reader/wri转载 2008-06-29 22:20:00 · 888 阅读 · 0 评论 -
Const用法小结 (选择自 yuguanglou 的 Blog)
1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2. const 修饰类的数据成员。如:class A{const int size;… }co转载 2008-06-30 14:03:00 · 523 阅读 · 0 评论 -
Unix环境下的Socket编程(转)
Unix环境下的Socket编程(转) 本文出自: http://www.topcmm.com (2001-06-26 15:00:01)转载 2008-07-01 23:48:00 · 724 阅读 · 0 评论 -
中断服务程序简介(转载)
断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。 中断服务程序需要满足如下要求: (1)不能返回值; (2)不能向ISR转载 2008-10-23 21:53:00 · 1220 阅读 · 0 评论 -
TCHAR,LPCSTR,LPSTR,LPCTSTR,LPTSTR简介
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型,你提到了另外几个类型都是这样。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。它实际定义在里: typedef unsigned short wchar_t。下面在看看TCHAR。如果你希望同时为A原创 2008-11-28 22:56:00 · 2028 阅读 · 0 评论 -
CString类所有成员函数详解(转载)
CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" );ASSERT( s1.Compare( s2 ) == -1 );转载 2008-12-01 20:15:00 · 948 阅读 · 0 评论 -
CString的工作原理介绍及易犯错误
CString的工作原理介绍(zz) 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug多和字符串有关,典型的有:缓冲溢出、内存泄漏等。而且这些bug都是致转载 2008-12-10 00:27:00 · 2363 阅读 · 1 评论 -
OutputDebugString输出调试信息
在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下:OutputDebugString The OutputDebugString function sends a string to the debugger for display. void Outpu转载 2009-05-20 10:11:00 · 1306 阅读 · 0 评论 -
C/C++中的函数参数传递机制(转)
C/C++中的函数参数传递机制 一、 函数参数传递机制的基本理论 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开转载 2008-06-30 17:05:00 · 634 阅读 · 0 评论 -
共享内存(shared memory)和信号量(semaphore)简介(转)
共享内存(shared memory) 共享内存是一段可以被多个进程共享的内存段。首先,用shmget系统调用产生指定大小的共享内存段,然后需要访问此共享内存的进程调用shmat系统调用,把这个内存段附加到自己的地址空间,然后就可以像访问自己私有的内存一样访问这个内存段了。等到访问完毕,用shmdt脱离。同message queue一样,共享内存一旦产生,除非明确的删除(某个有权限的进程或者用ip转载 2008-06-29 21:53:00 · 1971 阅读 · 0 评论 -
常对象和常函数的关系 const
(1) 常对象用const修饰的对象叫对象常量,其格式如下:〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。 例:分析下列错误的地方,说明理由;#includeclass Point{ int x, y;public:Point(int a, int b) { x=a; y=b;}Void MovePoint(原创 2008-05-22 23:43:00 · 965 阅读 · 0 评论 -
C语言sizeof,pragma 和对齐详解(转贴精华加自创)
1. 为什么要对齐? 以32位的CPU为例(16,64位同 ),它一次可以对一个32位的数进行运算,它的数据 总线的宽度是32位,它从内存中一次可以存取的最大数为32位,这个数叫CPU的字(wor d)长。 在进行硬件设计时,将存储体组织成32位宽,如每个存储体的宽度是8位,可用四块存 储体 与CPU的32位数据总线相连(这也是为什么以前的 386/486 计算机插SIMM30内存条(8位 )时,原创 2008-05-26 23:36:00 · 2168 阅读 · 0 评论 -
DEBUG和RELEASE 版本差异及调试相关问题
别人原创的文档,引用一下: DEBUG和RELEASE 版本差异及调试相关问题: . 内存分配问题 1. 变量未初始化。下面的程序在debug中运行的很好。 thing * search(thing * someth转载 2008-05-28 11:22:00 · 585 阅读 · 0 评论 -
使用DUMPBIN命令(转)
在使用VC时,可以用DUMPBIN。EXE来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin -exports Cmpnt1.dll如:C:/WINDOWS/system32>dumpbin -exports msgsvc.dllMicrosoft (R) COFF Binary File Dumper Version 6.00.8447Copyright (C) Micros转载 2008-06-06 15:54:00 · 545 阅读 · 0 评论 -
pragma 预处理指令学习(转)
pragma 预处理指令学习转载 2008-06-06 14:09:00 · 652 阅读 · 0 评论 -
从一个实例的vs2005汇编代码分析变量在段上的分配--数据段,代码段,BSS段
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通原创 2008-09-08 00:01:00 · 2247 阅读 · 0 评论 -
VC中cl.exe命令参数简介(转载,部分在vs2005进行了验证)
cl.exe所在的文件夹里面有一个批处理叫做 VSVAR32.BAT 首先运行它一次,你就可以用cl.exe来编译你的代码了。 (在vs2005里面未发现该文件,怀疑因该是上级目录的vcvarsall.bat,但是不执行该文件同样可进行命令行编译。)CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj转载 2008-09-08 15:13:00 · 1769 阅读 · 0 评论 -
ubuntu 10.04下进行安装wireshark的安装步骤和方法
ubuntu 10.04下进行安装wireshark的安装步骤和方法,及遇到的问题和解决方法。原创 2011-03-04 17:42:00 · 4215 阅读 · 0 评论