C/C++编程语言
bulreed
这个作者很懒,什么都没留下…
展开
-
C++中构造函数前的explicit用法
简而言之:explicit修饰的构造函数不能担任转换函数这个 《ANSI/ISO C++ Professional Programmers Handbook 》是这样说的explicit ConstructorsA constructor that takes a single argument is, by default, an implicit conversion operato翻译 2009-03-08 14:36:00 · 735 阅读 · 0 评论 -
位结构初探
最近工作中遇到了C/C++语言中的位结构,但是觉得有些微妙,所以就查阅了一些资料。首先简介一下位结构的定义以及用法。位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便。 位结构定义的一般形式为: struct位结构名{ 数据类型变量名: 整型常数; 数据类型变量名: 整型常数; } 位结构变量; 其中:数据类型必须是int(unsigned或signed)。整型常数必须是非负的整数, 范围是0~32,原创 2010-12-18 16:02:00 · 580 阅读 · 0 评论 -
结构体偏移量函数offsetof
计算结构体偏移量的函数多描述如下:#define offsetof(s,m) (size_t)&(((s *)0)->m)// Microsoft x86 compiler (version 7)#define offsetof(s,m) (size_t)(unsigned long)&(((s *)0)->m)// Diab Coldfire compiler#define offsetof(s,memb) ((size_t)((char *)&((s *)0)->memb-(ch原创 2011-05-18 17:22:00 · 935 阅读 · 0 评论 -
C语言中volatlie的用法
在编写嵌入式驱动的时候,经常要用到或看到volatile关键字,刚开始写驱动的时候,需要读取数据的时候,因为没有利用volatile关键字,导致没能正确的读取内容,后来查代码的时候才发现问题。 volatile关键字的主要目的就是告知编译器,对于所定义的变量不需要优化,也就是当第一次用到这个变量的时候,编译器会将这个变量存储在一个寄存器中,当再次利用的时候,不会去RAM中取,而是直接从寄存器中拿,这样虽然速度快了,但是有可能在RAM中内容已经改变了,但是寄存器存的并没有改变,这样就会导原创 2011-05-20 12:48:00 · 615 阅读 · 0 评论 -
C++类得生成顺序
今天面试一个问题,很长时间没有看这方面的东西了,并且确实有部分原因是没有准备面试,就是抱着打酱油的心态去的。惭愧! #include using namespace std; class A{ public: A(){cout ~A(){cout};class B{ public: B(){cout ~B(){cout};原创 2011-06-20 16:58:00 · 812 阅读 · 0 评论 -
Qt 5.1 QApplication: No such file or directory
从Qt的低版本向5.1版本迁移的时候,发现QApplication: No such file or directory的问题。解决方式如下:In Qt5 QApplication is no longer part of QtGui module, it's now in QtWidgets. In your #includedirective use , t原创 2013-09-29 10:52:00 · 1554 阅读 · 0 评论 -
expected unqualified-id before 'int'
Qt 5.1 升级后编译之前的代码,发现很诡异的问题。 error: expected unqualified-id before 'int' error: expected '}' before 'int' error: expected ',' or ';' before 'int' error: expected declaration before '}原创 2013-09-29 16:14:04 · 8203 阅读 · 0 评论 -
Windows 下创建目录,以及递归删除目录
Windows 下创建目录,以及删除目录,网上有很多不错的内容,但是有的有问题,记录下自己的实践。创建目录利用_mkdir,删除目录利用_rmdir目录是否可以访问_access设置当前的访问目录_chdir利用_findfirst,_findnext进行遍历整个目录,遍历结束需要关闭句柄_findclose。#include #include #include #include原创 2014-02-24 17:42:25 · 5455 阅读 · 0 评论 -
QT5.0 以上版本qdatetime.h:122: error: C2589: “(”:“::”右边的非法标记
最近用Qt5.2.0版本编译Windows下代码,发现编译错误D:\Qt\Qt5.2.0\5.2.0\msvc2012\include\QtCore\qdatetime.h:122: error: C2589: “(”:“::”右边的非法标记D:\Qt\Qt5.2.0\5.2.0\msvc2012\include\QtCore\qdatetime.h:122: error: C原创 2014-03-03 12:07:31 · 9172 阅读 · 7 评论