
C/C++
taotaost
这个作者很懒,什么都没留下…
展开
-
C++类型转换函数
#include <iostream>using namespace std;class Fraction{public: ~Fraction(){} Fraction():num(0),den(1){} Fraction(int n, int d):num(n),den(d){} //#if 1 operator double(){ try { if (den == 0) .原创 2021-02-07 17:37:12 · 201 阅读 · 0 评论 -
类中包含类时的构造和析构及其顺序
#include <iostream>using namespace std;class A {public: A(){ memA = new char[10]; cout<<"create A obj"<<endl; } ~A(){ if (memA) { delete[] memA; cout<<"delete memA"<<endl; } }private: char* memA = null.原创 2021-02-05 18:27:48 · 849 阅读 · 0 评论 -
map容器中键值对的删除与内存的释放
最近工作中用到STL中的map,由于map的值是new出来的地址空间,所以牵涉到删除map键值对及释放空间的问题,自己做了几个小测试,记录在下。1.//创建并初始化map容器2.map<std::string,std::string*>myMap;3.string*s1=newstring("http://c.biancheng.net/c/");4.string*s2=newstring("http://c.biancheng.net/python...原创 2020-11-26 09:06:54 · 1380 阅读 · 0 评论 -
C++ auto关键字的使用
转:https://www.cnblogs.com/KunLunSu/p/7861330.html转载 2020-11-17 23:03:07 · 198 阅读 · 0 评论 -
C++类的静态成员变量初始化
今天写代码时用了下C++中的静态成员变量,发现了一个以前不注意的现象,特此记录下。有类如下:class AudioPlay{public: static AudioPlay* get(); static int a; virtual ~AudioPlay();private: AudioPlay();};AudioPlay::AudioPlay(){}AudioPlay::~AudioPlay(){}AudioPlay* AudioPlay::get() { static Au原创 2020-10-06 11:36:11 · 507 阅读 · 0 评论 -
ARM上char类型问题
C标准表示char类型可以带符号也可以不带符号,由具体的编译器、处理器,或由它们两者共同决定到底char是带符号合适还是不带符号合适。大部分体系结构上,char默认是带符号的,它可以自-128到127之间取值。但也有一些例外,比如ARM体系结构上,char就是不带符号的,它的取值范围是0~255。转载 2015-06-28 13:23:08 · 2102 阅读 · 0 评论 -
关于vsnprintf的一些总结
关于vsnprintf的一些总结函数声明: int vsnprintf(char *str, size_t size, const char *format, va_list ap);关于该函数各个参数的具体意义不再赘述,参见百度百科即可,下面仅对该函数使用过程中的一些细节或者注意点进行说明。#include <stdio.h>#include <stdarg.h>#define MAXLEN原创 2016-10-22 19:14:35 · 30637 阅读 · 1 评论 -
linux驱动学习笔记1(简单实现open,read,write,ioctl)
以前开发过程中用过无数次的ioctl函数,一直不知道其内部如何实现的,最近正好在看这方面的资料,并结合网上的代码做了实践,这里记录下。首先编辑一个驱动模块,取名demo.c#include #include #include #include #include #include #include #include #include #include #include转载 2017-08-02 18:33:43 · 4426 阅读 · 2 评论 -
ANSI C和POSIX
标准 (ANSI C, POSIX, SVID, XPG, ...)1、ANSI C:这一标准是 ANSI(美国国家标准局)于 1989 年制定的 C 语言标准。 后来被 ISO(国际标准化组织)接受为标准,因此也称为 ISO C。ANSI C 的目标是为各种操作系统上的 C 程序提供可移植性保证,而不仅仅限于 UNIX。该标准不仅定义了 C 编程语言的语法和语义,而且还定义了一个标准库。转载 2015-02-26 20:58:30 · 813 阅读 · 0 评论 -
linux中C编程的一些时间函数整理
包含文件:1、time_ttime_t实际上是长整数类型,定义为:typedef long time_t; /* time value */2、timevaltimeval是一个结构体,在time.h中定义为:struct timeval{ __time_t tv_sec; /* Seconds. */ __原创 2015-02-24 22:25:02 · 697 阅读 · 0 评论 -
Const和#define大比拼
const给人的第一印象就是定义常量。 (1)const用于定义常量。例如:const int N = 100;const int M = 200;这样程序中只要用到 N、M 就分别代表为整型100、200,N、M 为一常量,在程序中不可改变。但有人说他编程时从来不用const定义常量。我相信。但他是不懂得真正的编程艺术,用const定义常量不仅能方便我们编程而且能提高程序转载 2013-02-10 22:34:30 · 410 阅读 · 0 评论 -
单精度和双精度数据
单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储。这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值。但是与此同时,他也完全符合科学计算中对于数值的观念:当我们比较两个棍子的长度的时候,一种方法是并排放着比较一下,一种方法是分别量出长转载 2012-02-10 23:46:25 · 1907 阅读 · 0 评论 -
c++/exe窗口一闪而过
C++编译调试后生成的可执行文件在独立运行时(脱离开发环境),由于执行太快了,在程序结束的时候又没有一个暂停,所以窗口会一闪而过,如果想在执行结束的时候能停下来看结果,方法有很多:刚学习时是在return 0;前使用一个等待输入 char letter;cout cin >> letter;//使程序暂停后来发现还有如下方法: 1. #include或者#includ转载 2011-08-28 18:03:25 · 2292 阅读 · 0 评论 -
浅谈C语言中的联合体
当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的: 1)联合体是一个结构; 2)它的所有成员相对于基地址的偏移量都为0; 3)此结构空间要大到足够容纳最"宽"的成员; 4)其对齐方式要适合其中所有的成员;下面解释这四条描述: 由转载 2013-08-30 20:22:21 · 485 阅读 · 0 评论 -
结构体字节对齐
在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。 内存对齐的原因: 1)某些平台只能在特定转载 2013-09-09 15:11:42 · 568 阅读 · 0 评论 -
C语言中不定参数个数的函数
C++中有函数重载这种方法,以供我们调用时要可以不确定实参的个数,其实C语言也可以,而且更高明!我们在stdio.h中可以看到printf()函数的原型:int printf(char * format,...)事实上,我们如果要写这样的函数也可以类似的写,那么在定义函数时用上这个符号“...”,它叫占位符,喊它“三个点”也可以,只要你愿意!那么我可以这样定义我的函数:fun(in转载 2013-09-24 19:20:57 · 4801 阅读 · 1 评论 -
位域
位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个转载 2013-11-22 11:26:59 · 878 阅读 · 0 评论 -
带与不带缓冲的I/O
带缓存的文件操作是标准C库的实现。第一次调用带缓存的文件操作函数时,标准库会自动分配内存并且读出一段固定大小的内容存储在缓存中。所以以后每次的读写操作并不是针对硬盘上的文件直接进行的,而是针对内存中的缓存的。何时从硬盘中读取文件或者向硬盘中写入文件有标准库的机制控制。 不带缓存的文件操作通常都是系统提供的系统调用,更加低级,直接从硬盘中读取和写入文件,由于IO瓶颈的原因,速度并不如意转载 2014-02-23 22:18:11 · 737 阅读 · 0 评论 -
C++中语句块与作用域
#includeusing namespace std;int main( ){ { int x=1; cout<<x<<" The first output!"<<endl; //输出1 { int x=2; cout<<x<<" The second output!"<<endl; //输出2 { int x=3; cout<<x<<"原创 2013-02-12 18:46:16 · 1614 阅读 · 0 评论