C/C++
文章平均质量分 58
xiaohangwj
正在努力让自己更强,真心寻找伙伴,风风火火的干一场!
展开
-
C语言-#和##说明
问题来源:在读marlin程序时遇到这种表达,对于我C语言菜鸟来说瞬间懵逼,上网查了下,恍然大悟,现总结如下。/// set pin as input#define _SET_INPUT(IO) do {DIO ## IO ## _DDR &= ~MASK(DIO ## IO ## _PIN); } while (0)/// set pin as output#define _原创 2016-06-08 09:01:34 · 347 阅读 · 0 评论 -
在QMainWindow内直接添加Layout行不通
在QDialog的派生类中,添加Layout,可在创建Layout对象的同时指定其父窗口,但这在QMainWindow中行不通。基于主窗口的程序,默认已经有了自己的布局管理器。QMainWindow的中心控件是一个QWidget,可以通过setCentralWidget设置。若想在QMainWindow中添加 layout,需要通过将该Layout添加到一个QWidget对象中,然转载 2016-11-01 23:15:51 · 223 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
1.snprintf比sprintf更加安全,可以控制写入字符串长度;2.snprintf会先把目标字符串清空,然后写入;而sprintf不会。这会导致问题参考3.返回值不同。snprintf成功则返回欲写入字符串长度即格式化后字符串长度,失败则返回负值;sprintf返回成功写入字符串长度,出错返回-1。所以在使用返回值时候一定要注意特别是snprintf;原创 2016-11-30 14:39:21 · 391 阅读 · 0 评论 -
sprintf和snprintf的定义及区别
1. snprintf比sprintf更加安全,可以控制写入字符串长度;2. snprintf会先把目标字符串清空,然后写入;而sprintf不会。这会导致问题[参考](https://my.oschina.net/shelllife/blog/177279)3. 返回值不同。snprintf成功则返回欲写入字符串长度即格式化后字符串长度,失败则返回负值;sprintf返回成功写入字符串长度,出错返回-1。所以在原创 2016-11-30 14:43:14 · 2566 阅读 · 0 评论 -
面向对象设计-简单总结
面向对象设计概述 基本概念:数据抽象,继承,动态绑定继承派生类继承基类成员任何构造函数之外的非静态函数都可以定义为虚函数虚函数解析过程在进行时,可以通过使用基类的引用(或指针)实现动态绑定:public classA控制派生类访问基类成员派生类中含有与基类对应的部分,这是继承关键所在可以将基类的指针或者引用绑定到派生类对象上final和override,显示声明...原创 2018-06-17 22:45:32 · 142 阅读 · 0 评论 -
单元测试的艺术-简
单元测试创建随系统自然发展的设计文档。单元测试和集成测试单元测试 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读,并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。工作单元 从调用系统的一个公共方法到产...原创 2018-07-19 23:30:25 · 257 阅读 · 0 评论 -
【转】数据结构
数据结构一些概念数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位数据项:数据的不可分割的最小单位。一个数据元素可由若干个数...转载 2018-10-15 19:26:54 · 155 阅读 · 0 评论 -
marlin改动支持dobot机型-正反解
1. /******************************************/ /* dobot正解,由关节角度到空间位置 /******************************************/void calculate_DOBOT_forward_Transform(float f_dobot[3]) { // Perfo原创 2016-08-06 14:31:22 · 2763 阅读 · 0 评论 -
marlin改动支持dobot机型-方案1
初步方案:更改marlin支持dobot结构,,其余可以不用改动。搜索跟宏定义相关的程序部分。搜索scara定位文件:1.Conditionals.h2.configuration.h3.configuration_store.cpp4.marlin.h5.Marlin_main.cpp6.sanitycheck.h7.ultralcd.cpp工作量评估:4原创 2016-08-06 14:25:06 · 3503 阅读 · 0 评论 -
【转】C语言常用字符串库函数str~和mem~
转自:http://www.cnblogs.com/xiangzi888/archive/2012/04/16/2451947.html平时对字符串的操作的是很多的,了解下常用的字符串函数会使 c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件:#include string.h> 一、str 系列1.strtok转载 2016-06-08 15:54:39 · 320 阅读 · 0 评论 -
【转】atoi,atol,strtod,strtol,strtoul实现类型转换
参考:http://blog.csdn.net/l545045612/article/details/7780424一、atoiC语言库函数名: atoi 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格转载 2016-06-12 14:24:27 · 191 阅读 · 0 评论 -
c/c++笔试题1
1.进程和线程的差别。 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 (3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. (4)系统开销:在创建或撤消进程时,转载 2015-10-21 21:58:02 · 933 阅读 · 0 评论 -
C++中cout与printf区别
VC环境C++测试一个判断系统是大小端的程序时候遇到了问题,如下(加入了改正后的cout与printf对比):# include #include using namespace std;union endian{ int data; char ch;};void main(){ endian ed; ed.data = 0x12345678; if(ed.ch原创 2016-06-06 19:58:07 · 13341 阅读 · 0 评论 -
C语言-数据结构-位域
1.位域的概念 在程序中,某些信息存储时不需要一个完整的字节,只需要几位,为节省存储空间C语言支持“位域”的结构体。具体说就是,将一个字节分为几个段,每一段表示一个对象,这样一个字节就可以表示多个对象。2.位域的定义位域定义与结构定义相仿,其形式为:struct 位域结构名{ 位域列表 /* 其中位域列表的形式为: 类型说明符 位域名:位域长度 */原创 2016-06-06 16:44:08 · 671 阅读 · 0 评论 -
【转载】C++的cout高阶格式化操作
【转自】http://www.cnblogs.com/devymex/archive/2010/09/06/1818754.html这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等。通过本文,您可以完全脱离scanf/printf,仅使用cout来完成一切需要的格式化输入输出功能(从非性能的角度而言)。更进一步转载 2016-06-06 19:47:29 · 249 阅读 · 0 评论 -
VC2005报错:fatal error LNK1104: cannot open file 'uuid.lib'
工程调用uuid.lib,但是没有在在链接目录下找到,所以需要找到uuid.lib添加到系统环境变量的lib中去了以后,就解决了这个问题。首先uuid.lib为本机库文件,在系统盘下*\Microsoft SDKs\Windows\*类目录下,如果比较难找建议下个Everything软件搜索下。原创 2016-06-21 11:28:13 · 1741 阅读 · 0 评论 -
round、floor、ceil、trunc的对比
#include #include int main (){ const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n"; printf ("value\tround\tfloor\tceil\ttrunc\n"); printf ("-----\t-----\t-----\t----\t原创 2016-06-12 15:11:42 · 1070 阅读 · 0 评论 -
ANSI C标准宏
ANSI C定义6个标准宏:__LINE__:在源代码中插入当前源代码行号;__FILE__:在源文件中插入当前源文件名;__DATE__:在源文件中插入当前的编译日期__TIME__:在源文件中插入当前编译时间;__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;__cplusplus:当编写C++程序时该标识符被定义。标识符__LINE__和原创 2016-07-08 14:53:26 · 397 阅读 · 0 评论 -
C语言-结构体-位域
1.位域的概念 在程序中,某些信息存储时不需要一个完整的字节,只需要几位,为节省存储空间C语言支持“位域”的结构体。具体说就是,将一个字节分为几个段,每一段表示一个对象,这样一个字节就可以表示多个对象。位段成员必须声明为int、unsigned int或signed int类型(short char long)。位域在本质上就是一种结构类型。2.位域的定义位域定义与结构定义相仿,...原创 2018-11-29 22:53:32 · 2857 阅读 · 1 评论