C/C++笔记
取取经
这个作者很懒,什么都没留下…
展开
-
数值的运算与处理器字长的关系
数值的运算与处理器字长的关系在项目编程中遇到数值运算的溢出问题,这里作为记录就不附上整个项目的代码了,只针对该问题例举以下代码,如果理解或者语言表达不当等问题,还请指正。原创 2014-03-10 11:52:12 · 1153 阅读 · 0 评论 -
二级指针及其内存模型初探
二级指针的三种内存模型这里其实算是总结,具体的分别会在后面各章节中讲述。第一种内存模型(指针数组)char *strArray[] = {"aaaa22222","bbbbb","ddddddd","ddddddss222"};第二种内存模型(二维数组,数组指针)char strArray[10][30] = {"aaaa22222"原创 2014-08-05 21:12:39 · 968 阅读 · 0 评论 -
字符串
字符串字符串的定义与初始化先由一个字符数组的定义说起,char s[7] = {'a','b','c','d','e','f','g'};由于没有以’\0’结尾,因此s不能算字符串,只能算是一个字符数组。 另外可以不事先制定字符数组的长度,如下所示。char s[] = {'a','b','c','d','e','f','g'};这样编译器会自动认为数组s的长度是7原创 2014-08-05 21:04:54 · 692 阅读 · 0 评论 -
const修饰符
const修饰符1. constint a;2. intconst b;3. constint *c;4. int *const d;5. constint const *e;初级理解:const是定义常量→const意味着只读。对上述5条语句的理解:1. 代表一个常整型数;原创 2014-08-05 20:46:50 · 747 阅读 · 0 评论 -
const
reference : C++ Primer Pluscontent : const原创 2015-05-05 09:03:16 · 656 阅读 · 0 评论 -
引用
content : 引用;reference : C++ Primer Plus原创 2015-05-12 09:16:02 · 1408 阅读 · 0 评论 -
【C++杂记】C++构造函数失败怎么办,智能指针+异常处理防止内存泄漏
概述C++构造函数失败后,其对应的析构函数会被自动调用吗? 答案是不会。能在构造函数中抛出异常,然后在外面捕获吗? 可以,但不建议这样做。C++之父和herb sutter这样的最顶级专家建议不要把容易出错的代码放在构造函数中,当然如果非要在构造函数做一些容易失败的事,那就在构造里throw异常吧。另外对于析构函数,Herb Sutter在Exceptional c++ 中也说过说:“...转载 2018-08-11 15:35:38 · 2874 阅读 · 0 评论 -
【C++杂记】C++代码接口封装方法
概述在多人协作开发中,常常会涉及代码打包和接口封装。方法1:对原功能代码再包一层由于我们不想暴露AImpl.h中,故对其封装,即在A.h和A.cpp中对其包一层。 我们甚至在A.h中都不需要声明 AImpl *imp_的,在A.h中可以只声明一个void *imp_,在A.cpp中将该void *指针转换成Almpl *即可。AImpl.h [1]class AImpl...转载 2018-08-11 15:00:19 · 6536 阅读 · 0 评论 -
【C++杂记】DLL动态库打包与使用
windows DLL动态库打包如下代码,在facedll.cpp中调用fun.h,fun.cpp,……等一系列功能函数,在facedll.h中声明导出dll即可将facedll.cpp和fun.h,fun.cpp,……等一系列功能函数打包成动态库。我们只需提供给用户facedll.h和新生成的.dll和.lib文件即可,关于动态库的时候,本文后面也会说到。我的开发环境:win7 64,v...原创 2018-08-11 14:22:57 · 2924 阅读 · 2 评论 -
结构体
结构体变量的定义 1. 先定义结构体类型,在定义结构体变量//1).先定义结构体类型struct Student{ char name[32]; char tile[32]; int age; char addr[128];};//2).再用该结构体类型定义结构体变量stru原创 2014-08-06 20:07:19 · 701 阅读 · 0 评论 -
windows动态库开发
动态库原理浅析1. 动态库的导出动态库的导出有两种方法:(1) __declspec(dllexport)int MyFunction(int n);这样就可以将动态库中的函数MyFunction()导出了。(2) 需要一个Des文件,通过该文件来导出动态库。(Master没细说这种方法,不过说了这两种方法都较原创 2014-08-24 10:35:58 · 1742 阅读 · 0 评论 -
为多级指针分配内存
如何理解多级指针1. 当指针做函数参数的时候,要站在编译器的角度去理解,他只不过是4个字节的变量。2. 当我们使用指针所指向的内存空间的时候,我们才去关注char * /char ********是二维的,还是八维的。指针变量和它所指向的内存空间变量是两个不同的概念。 为一级指针分配内存方法1:由返回值传回分配的地址原创 2014-08-21 22:55:37 · 1458 阅读 · 0 评论 -
关于数组类型的外部变量的声明
example.cunsigned int Buf[10];原创 2014-05-15 19:55:03 · 5557 阅读 · 1 评论 -
找出一组数据中不同的数据
问题简化如下://输入10个整型数,找出这10个数据中不同数据的个数,并输出各个不同的数据。#include "stdio.h"int dat,Buf[10];void main(void){unsigned int i,j,J=0;for(i=0;i{scanf("%d",&dat);for(j=0;;j++){if(dat==Buf[j]原创 2014-03-11 17:02:02 · 1650 阅读 · 0 评论 -
关于指针在函数中的调用
2014-2-19问题:定义函数f(),其形参是float型,现在想通过函数f()调用先前定义的整型数,通过调试总结出如下一些经验,有的地方尚需要官方或者资深高手给予指点。#include "stdio.h"#include "stdlib.h"#define N 8float Buf[N];unsigned int *Ptr;原创 2014-03-09 12:53:27 · 1301 阅读 · 0 评论 -
关于浮点数的运算误差问题
项目中遇到的问题,#include "stdio.h"#include "stdlib.h"void test(double fRx, double space, unsigned int n){ double fRx_max = fRx + space * (double)n; double delta = 0; for(; fRx<=fRx_max; fRx+=spa原创 2014-05-23 19:15:49 · 1837 阅读 · 0 评论 -
关于指针在结构体中的调用
typedef struct{ int dat; int *ptr;}Sample;Sample temp;printf("%d\n",&temp.dat);printf("%d\n",&temp.ptr);printf("%d\n",temp.dat);printf("%d\n",temp.ptr);原创 2014-04-12 11:48:02 · 4983 阅读 · 1 评论 -
关于变量、1/2级指针等形式的形参传递
1>>>void main(){ int tmp; printf("%d\n",&tmp); printf("%d\n",tmp);}上述程序编译时会有警告,说是tmp没有被初始化。运行该程序后,不输出任何东西,且会弹出如下对话框。2>>>若在上述程序的printf("%d\n",tmp)前加一条语句:printf("%d\n",&tmp),即如下,v原创 2014-04-29 21:49:44 · 940 阅读 · 0 评论 -
关于在函数中定义大数组(局部变量)所导致的问题
函数中定义大数组(局部变量)的问题今天调程序时(我用的是DSP处理器),在函数内部定义了两个较大的数组:float a[300],float[300],编译无错也无警告,但运行时程序会出错,像是跑飞的样子,后来我将这两个大数组放到函数外(全局变量),则就正常了。后来我百度“函数中定义大数组”,说是这造成了栈溢出,还建议不要在函数中使用较的数组。 一个由c/C++编译的程序占原创 2014-04-18 15:08:53 · 11523 阅读 · 0 评论 -
采用位域结构体的形式访问寄存器
Register.h文件#ifndef _REGISTER_H_#define _REGISTER_H_//step1:定义各个寄存器的位,这里以TCR寄存器为例来说明是如何实现按位操作的。// 作为示例,其他几个寄存器只是象征性地写几位。//==================================================================原创 2014-08-21 11:13:01 · 2454 阅读 · 0 评论 -
【C++杂记】C++父类指针指向子类对象
C++父类指针指向子类对象时,父类析构必须为虚函数示例1 [1]:#include &amp;lt;iostream&amp;gt;using namespace std;class Base_J {public: Base_J() { cout &amp;lt;&amp;lt; &quot;Base Created&quot; &转载 2018-08-11 13:28:00 · 5250 阅读 · 1 评论