C/C++/QT
文章平均质量分 62
「已注销」
嵌入式研发 医疗,机器人,物联网
展开
-
enum 在c中的使用
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这翻译 2015-12-14 00:37:10 · 305 阅读 · 0 评论 -
#ifdef,#else,#endif和#ifndef,#else,#endif 详解
关于预处理命令中的文件包含(#i nclude),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明。以下分3种情况:1:情况1:#ifdef _XXXX...程序段1...#else...程序段2...#endif 这表明如果标识符_XXXX已被#define命令定义翻译 2015-12-14 00:39:45 · 732 阅读 · 0 评论 -
C语言条件编译及编译预处理阶段
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中,并没有任何内在的机制转载 2015-12-17 18:27:56 · 232 阅读 · 0 评论 -
浮点数在串口打印函数
/********************************************************************************************************网上的浮点数在串口打印的函数都不太完美,于是参考他们的一些算法自己写了一个比较完善的算法可以完成包括负数和正数的浮点数转字符串的转换***********************转载 2015-12-24 22:33:14 · 1431 阅读 · 1 评论 -
QT知识点总结
1> 定时器的使用QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); // 设置定时器回调函数 timer->start(1000); // 启动定时器2> 得到系统当前时间QTime time = QTime::转载 2016-10-19 15:30:29 · 1307 阅读 · 0 评论 -
QWT坐标轴的设置
1自定义坐标轴x轴设置为系统时间(分钟,秒数)代码如下class TimeScaleDraw: public QwtScaleDraw //自画坐标轴{public: TimeScaleDraw() { } virtual QwtText label( double v ) const //重绘坐标轴 刻度值转载 2016-10-19 15:28:04 · 5838 阅读 · 0 评论 -
QT 反走样 使画图光滑
今天继续前面的内容。既然已经进入2D绘图部分,那么就先继续研究一下有关QPainter的东西吧! 反走样是图形学中的重要概念,用以防止“锯齿”现象的出现。很多系统的绘图API里面都会内置了反走样的算法,不过默认一般都是关闭的,Qt也不例外。下面我们来看看代码。这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前面章节中的相关代码。 void P转载 2016-10-19 10:53:13 · 1285 阅读 · 0 评论 -
数据结构C语言实现之链式队列的6种算法代码
#include stdio.h>#include stdlib.h>typedef int elemType;/************************************************************************//* 以下是关于队列链接存储操作的6种算法 *//*********************转载 2016-09-01 17:48:07 · 743 阅读 · 0 评论 -
c语言递归全排列问题
#include"stdio.h"#define SWAP(a,b,c) ((c)=(a),(a)=(b),(b)=(c))void perm(int *list,int i,int n);int main(){ int arry[4]={1,2,3,4}; perm(arry,0,3); return 0;}void perm(int原创 2016-08-27 20:08:07 · 7166 阅读 · 0 评论 -
链式栈 C语言数据结构
栈的链式存储结构 栈的链式存储结构与线性表的链式存储结构相同,是通过由结点构成的单链表实现的。为操作方便我们使用无头结点的单链表。此时栈顶为单链表的第一个结点,整个单链表为一个链栈。1. 链栈的类型定义://链栈的类型定义typedef struct node{ datatype data; /*原创 2017-11-13 12:07:29 · 612 阅读 · 0 评论 -
补码
整数补码求给定数值的补码分以下两种情况:正数正整数的补码与原码相同。【例1】+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)负数求负整数的补码,原码符号位不变,先将原码减翻译 2015-04-12 22:35:07 · 777 阅读 · 0 评论 -
在C语言中,double、long、unsigned、int、char类型数据所占字节数
和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是转载 2015-04-02 00:44:04 · 372 阅读 · 0 评论 -
nt main(int argc,char*argv[])和int main()有什么区别?
main函数的参数 前面介绍的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参翻译 2015-04-01 19:27:44 · 1071 阅读 · 0 评论 -
C 语言 数据结构之双向链表
#include #include struct Node{ char data; struct Node *left; struct Node *right;};typedef struct Node DListNode;typedef struct Node *DLinkList;int InitDList(DLinkLis原创 2016-09-01 16:13:10 · 500 阅读 · 0 评论 -
C语言中<>和“”有什么区别
例如你使用的是TurboCinclude 代表编译时直接在TurboC软件设置指定的路径(默认是TurboC所在文件夹下的include文件夹)中寻找里面是否有stdlib.h的库文件。如果有,直接加载;如果没有,报错(无法找到库文件)。include "stdlib.h"代表编译时先寻找你正在编辑的源代码文件(C或CPP文件)所在的文件夹里面有没有stdlib.h的库文件。如果有,优先加原创 2016-08-28 19:53:49 · 2973 阅读 · 0 评论 -
ypedef struct LNode结构指针
typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;LNode和*LinkList;是与前面的typedef配合起来使用的,意思是给你声明的结构体起一个别名叫LNode,同时起一个指针别名叫LinkList,以后就可以用以下方式声明变量:LNode a;//声明了一个struct LNo原创 2016-08-28 18:00:24 · 3459 阅读 · 0 评论 -
函数指针与指针函数的区别
一、函数指针首先它是一个指针,只是这个指针指向的是一个函数。指针变量可以指向变量的地址、数组、字符串、动态分配地址,同时也可指向一个函数,每个函数在编译的时候,系统会分配给该函数一个入口地址,函数名表示这个入口地址,那么指向函数的指针变量称为函数指针变量。表示:struct file_operations {int (*seek) (struct inode * ,struct f转载 2016-08-28 16:57:28 · 531 阅读 · 0 评论 -
总结一下typedef和#define的区别
原博客地址:http://www.cnblogs.com/li-peng/p/3853818.html1.概念 #define 它在编译预处理时进行简单的替换,不作正确性检查。它是预处理指令。 typedef 它在自己的作用域内给一个已经存在的类型一个别名。它是在是在编译时处理的。 例子:#define:#define DO doubleDO转载 2016-08-28 09:13:28 · 505 阅读 · 0 评论 -
浅谈C中的malloc和free
原帖及讨论:http://bbs.bccn.net/thread-82212-1-1.html 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一转载 2016-04-21 17:43:08 · 222 阅读 · 0 评论 -
QT信号和槽
原文地址:点击打开链接[cpp] view plain copy#ifndef MY_HEAD_H #define MY_HEAD_H #include #include //EastonWoo class A : public QObject //QObject::connect是在QObject定转载 2016-12-05 21:40:45 · 320 阅读 · 0 评论 -
Qt学习之路QString
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/275360这段时间回家,一直没有来得及写,今天才发现博客的编辑器有了新版。还是先来试试新版编辑器的功能吧!今天要说的是QString。之所以把QString单独拿出来,是因为string是很常用的一个转载 2016-10-31 22:21:56 · 259 阅读 · 0 评论 -
C语言中的break、continue和goto三者的区别与用法
break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。 如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括转载 2016-04-21 16:46:45 · 2149 阅读 · 0 评论 -
C语言详解 枚举
注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN转载 2016-03-09 23:12:07 · 322 阅读 · 0 评论 -
C/C++动态内存创建与内存管理
1 内存空间逻辑组织A 静态数据区:内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,如函数中的静态变量就是在程序第一次执行到定义该变量的代码时才被初始化。所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。注意:初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过void翻译 2015-12-14 00:41:00 · 294 阅读 · 0 评论 -
循环队列 C语言数据结构
生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。这里讲的是循环队列,首先我们必须明白下面几个问题一、循环队列的基础知识原创 2017-11-13 13:04:01 · 602 阅读 · 0 评论