
c/c++
文章平均质量分 72
ccbuluo
软件学习者。。
展开
-
c语言自定义寄存器操作的一些方法
1 寄存器地址的定义: #define UART_BASE_ADRS (0x10000000) /* 串口的基地址 */ #define UART_RHR *(volatile unsigned char *)(UART_BASE_ADRS + 0) /* 数据接受寄存器 */ #define UART_THR *(volatile unsigned cha转载 2011-10-26 09:12:42 · 2749 阅读 · 0 评论 -
toi,atol,strtod,strtol,strtoul实现类型转换
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://ivanvic.blogbus.com/logs/1920125.htmlatof(将字符串转换成浮点型数)相关函数atoi,atol,strtod,strtol,strtoul表头文件#include 定义函数double atof(const char *nptr);函数说转载 2013-03-22 12:40:23 · 670 阅读 · 0 评论 -
SendMessage、PostMessage原理
本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了转载 2013-03-22 12:41:58 · 689 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
MultiByteToWideChar和WideCharToMultiByte用法详解//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR://转载 2013-03-22 12:42:40 · 566 阅读 · 0 评论 -
CreateDIBSection创建位图
24位位图:LPBYTE DIBData;HBITMAP HBitMapDst;BITMAPINFO *pbinfo = NULL;pbinfo = (BITMAPINFO *)calloc(1, sizeof(BITMAPINFO)) ;if(pbinfo == NULL){return;}pbinfo->bmiHeader.biSize = sizeof (原创 2013-05-22 10:46:07 · 1700 阅读 · 0 评论 -
打开文件对话框选文件或者目录
//通过打开文件选择对话框选择文件或目录void OpenFileDialog(BOOOL bOpenFolder){if(bOpenFolder==TRUE){/*Path=m_StrNewPath;pFileDlg=new CFileDialog(TRUE,_T(".ini"),Path,OFN_HIDEREADONLY | OFN_CREATEPROMPT,_T("I原创 2013-07-19 18:39:54 · 589 阅读 · 0 评论 -
查找窗口的几种方法
1.根据窗进程的ID来查找//枚举窗口BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam){ LPWNDINFO pInfo = (LPWNDINFO)lParam; DWORD dwProcessId = 0; GetWindowThreadProcessId(hWnd, &dwProcessId)原创 2013-08-02 15:20:37 · 1948 阅读 · 0 评论 -
全局变量、局部变量、静态全局变量、静态局部变量的区别
C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,自从第一次初始化直原创 2013-11-19 18:07:34 · 617 阅读 · 0 评论 -
static_cast和reinterpret_cast
static_cast和reinterpret_cast揭秘 收藏 本文讨论static_castreinterpret_cast reinterpret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将非32bit的实例转成指针。总之,只要是32bit的转载 2014-03-03 10:43:46 · 531 阅读 · 0 评论 -
常用的宽字符函数
常用的宽字符函数由于Windows NT/2000/XP采用的是Unicode字符编码,字符都是双字节的。所以在MFC编程中,一般需要使用双字节的字符类型wchar_t和对应的字符串及其指针类型LPCWSTR和LPCTSTR,并在常数字符串前添加了L转换符,串长计算函数不能用strlen而改用wcslen,串格式打印函数也不能用sprintf,而是改用swprintf。wchar_t类型,转载 2013-03-22 12:39:14 · 2202 阅读 · 0 评论 -
如何判断处理器的小端OR大端格式
题目:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。解答:int checkCPU(){ union w { int a; char b; } c; c.a = 1; re转载 2011-10-26 09:32:17 · 392 阅读 · 0 评论 -
详解C中volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo转载 2011-10-26 09:56:30 · 331 阅读 · 0 评论 -
学习记录
一. 指针和引用的联系与区别★ 相同点:1. 都是地址的概念;2.指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;4. 引用没有 const,指针有 const;5. 引用不能为空,指原创 2011-11-01 14:20:12 · 398 阅读 · 0 评论 -
C++ Vector使用心得
作者: intsilence (4 篇文章) 日期: 八月 10, 2011 在 11:02 下午标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本V转载 2011-11-02 15:35:00 · 364 阅读 · 0 评论 -
tinyxml使用笔记与总结
tinyxml使用笔记与总结 在TinyXML中,根据XML的各种元素来定义了一些类: TiXmlBase:整个TinyXML模型的基类。 TiXmlAttribute:对应于XML中的元素的属性。 TiXmlNode:对应于DOM结构中的节点。 TiXmlComment:对应于XML中的注释。 T转载 2011-11-25 10:33:18 · 513 阅读 · 0 评论 -
高质量C++及C编程指南(一)--林锐
第一章 文件结构每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1转载 2011-12-19 17:13:02 · 2343 阅读 · 1 评论 -
C工程的组织方式(头文件的功能)以及Linux下常用的头文件的作用
1.1每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1 版权和版本的声明转载 2012-02-09 14:06:31 · 703 阅读 · 2 评论 -
VC中动态添加控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。转载 2013-03-20 12:15:36 · 506 阅读 · 0 评论 -
简单的单例实现
/////test.h#include "stdio.h"class A{public:~A();static A m_a;static A* getAinstance();void Seta(int aa);private:A();int a;};/////test.cpp#include "test.h"原创 2014-03-17 09:36:44 · 607 阅读 · 0 评论