关闭
当前搜索:

使用static与const关键字时需要掌握的知识

static: 1、不考虑类,static的作用:     1)第一个作用:隐藏。使得全局变量和函数对其它文件不可见,同时避免了不同文件的命名冲突。     2)第二个作用:默认初始化为0。未初始化的全局静态变量和局部静态变量都保存在BBS段,BBS段的特点是,程序运行之前会自动清零。     3)第三个作用:保持局部变量内容的持久性。此变量声明周期是整个程序的声明周期,但是作用域只在声明...
阅读(31) 评论(0)

strcpy、strncpy与memcpy的区别与使用方法

strcpy、strncpy、memcpy这三个C语言函数我们在主机代码编写中会很频繁的使用到,但是三个函数的区别、使用时该注意什么还是有必要说下的。 本文参考《C 标准库》编写。 一、函数说明 1、memcpy函数 void  *memcpy(void *s1,  const void *s2,  size_t  n); 说明: 函数memcpy从s2指向的对...
阅读(27) 评论(0)

C语言里用结构体和指针函数实现面向对象思想

转自:http://www.linuxidc.com/Linux/2016-12/138789.htm 一、基础研究 观察如下两个程序a.c和b.c: A.c:   B.c:     这两个程序都是要实现在屏幕上第10行40列打印一个绿色的字符c:   这两个程序的数据组织方式是一样的,都是使用结构体,而且对共性和个性的分离的思路也是一样...
阅读(49) 评论(0)

c++中vector的用法详解

转自:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.      用法:           1.文件包含:          ...
阅读(89) 评论(0)

剑指offer-操作给定的二叉树,将其变换为源二叉树的镜像

剑指offer:操作给定的二叉树,将其变换为源二叉树的镜像  /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*...
阅读(80) 评论(0)

用两个队列实现一个栈

转自:http://blog.csdn.net/jiange_zh/article/details/50583370 队列是先进先出,而栈是先进后出; 考虑到我们取栈顶元素的便利性,我们在实现时使得栈顶等于队列头; 由于栈的pop弹出栈顶元素,而队列的pop也是弹出栈顶元素,所以我们需要特别处理的是插入操作。 由于往栈中添加元素相当于往队列头添加元素,因此我们需要在两个...
阅读(156) 评论(0)

C++中this指针的用法详解

转自:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处:   一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上thi...
阅读(111) 评论(1)

解决CserialPort类串口程序中WriteToPort只能发送一次问题

现象:每次打开串口只能发送一次,需要关闭再打开或者接收完数据才能发送 成因:在自带串口的电脑、或用优质的USB串口线都没有出现改问题,很有可能跟串口线的质量有关, 调试发现在调用玩WriteToPort函数 SetEvent(m_hWriteEvent);后第一次能够正常进入监视线程(CommThread(LPVOID pParam)) 调用WriteChar(port),然...
阅读(129) 评论(0)

MFC串口编程——使用WM_COMM_TXEMPTY_DETECTED来判断接收结束

最重要的写在最前面: ::SendMessage((port->m_pOwner)->m_hWnd, WM_COMM_TXEMPTY_DETECTED, (WPARAM) RXBuff, (LPARAM) port->m_nPortNr);  在void CSerialPort::ReceiveChar(CSerialPort* port, COMSTAT comstat)函数...
阅读(198) 评论(0)

深入C语言把文件读入字符串

1.纯C实现FILE *fp; if ((fp = fopen("example.txt", "rb")) == NULL) { exit(0); } fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); char *tmp = (char *) malloc(sizeof(char) * fileLen); fseek(fp, 0, S...
阅读(217) 评论(0)

MODBUS通讯协议及编程【一】

一、Modbus 协议简介    Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。    此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应...
阅读(155) 评论(0)

MFC下自动识别串口的实现

摘自:http://blog.csdn.net/itas109/article/details/18359295 程序:http://blog.csdn.net/itas109/article/details/18359295 serial类里边的两个函数 [cpp] view plain copy void CSerialPort:...
阅读(304) 评论(0)

STM32中中断优先级理解

很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()——配置优先级分组方式,会很不理解,尤其是看中文翻译版的,因为中文翻译版里把这里翻译成“先占优先级和从优先级”这样翻译其实是不对的,很容易让人误解。为了便于大家理解,有必要先解释两个概念: 抢占式优先级/响应优先级:     STM32(Cortex-M3)中有两个优先级的概念——抢占式...
阅读(159) 评论(0)

c++中的string常用函数用法总结

标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据...
阅读(231) 评论(1)

c++中的运算符优先级

C++ 中的运算符优先级 运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。 例如 x = 7 + 3 2,在这里,x 被赋值为 13,而不是 20,因为运算符 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。 下表将按运算符优先级从高到低列出各个运算符,具有较...
阅读(143) 评论(0)
157条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:91033次
    • 积分:1907
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:65篇
    • 译文:0篇
    • 评论:31条
    最新评论